(we had better avoid top-posting:p) At Fri, 26 Feb 2021 02:52:49 +0000, "iwata....@fujitsu.com" <iwata....@fujitsu.com> wrote in > Alvaro san, > > Thank you very much for your updating and organizing this patch. > > It appears that something is still wrong. I applied lipq pipeline v27 from > [1] and ran src/test/modules/test_libpq/pipeline singlerow, after patching it > to do PQtrace() after PQconn(). Below is the output I get from that. The > noteworthy point is that "ParseComplete" messages appear multiple times for > some reason ... but that's quite odd, because if I look at the network > traffic with Wireshark I certainly do not see the ParseComplete message being > sent three times. > > I will search this cause. Please wait a minuets. > I thought I could avoid multiple such outputs by using conn->LogCursor…
I found a bug of the patch. - Tweaked psql to enable tracing. (attached) - Connect to a server using SSL. - Restart the server. <many ":::Invalid Protocol" are emitted> - Reconnect to the server by just entering ';<ret>' on the psql command line. I saw the following log lines. 2021-02-26 14:29:40.434749 > Query 6 ";" 2021-02-26 14:29:40.435948 < ErrorResponse 116 S "FATAL" V "FATAL" C "57P01" M "terminating connection due to administrator command" F "postgres.c" L "3129" R "ProcessInterrupts" \x00 2021-02-26 14:29:40.438298 > SSLRequest 8 '\x04\xffffffd2\x16/' 2021-02-26 14:29:40.443155 < ParameterStatus 2021-02-26 14:29:40.468186 > StartupMessage 84 '\x00\x03\x00\x00user\x00horiguti\x00database\x00postgres\x00application_name\x00psql\x00client_encoding\x00UTF8\x00\x00' < :::Invalid Protocol < :::Invalid Protocol 1. It seems to have desynced. 2. ":::Invalid Protocol" looks somewhat odd? 3. ":::Invalid Protocol" lines missing a timestamp. - type "select 1;<ret>" <several ":::Invalid Protocols" then psql crashes> I haven't looked further, though. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index 780479c8d7..1364e1aa13 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -25,7 +25,7 @@ #include "input.h" #include "mainloop.h" #include "settings.h" - +#include "libpq-trace.h" /* * Global psql options */ @@ -300,6 +300,12 @@ main(int argc, char *argv[]) exit(EXIT_BADCONN); } + { + FILE *fp = fopen("hoge.trc", "a"); + Assert (fp); + PQtrace(pset.db, fp); + } + psql_setup_cancel_handler(); PQsetNoticeProcessor(pset.db, NoticeProcessor, NULL);