Tatsuo Ishii wrote: > > Buildfarm member hamerkop has been failing in the pg_upgrade regression > > test for the last several days. The problem looks like this: > > > > command: > > "C:/buildfarm/build_root/HEAD/pgsql.build/contrib/pg_upgrade/tmp_check/install/bin/pg_restore" > > --port 50432 --username "Administrator" --exit-on-error --verbose --dbname > > "postgres" "pg_upgrade_dump_12145.custom" >> "pg_upgrade_dump_12145.log" > > 2>&1 > > pg_restore: connecting to database for restore > > pg_restore: [archiver (db)] Error while INITIALIZING: > > pg_restore: [archiver (db)] could not execute query: ERROR: invalid byte > > sequence for encoding "UTF8": 0x93 > > > > I can't help noticing that this started immediately after commit > > 0eea804 "pg_dump: Reduce use of global variables". No idea why > > the issue is only showing up on this one animal. > > I guess one of possibilities is there's garbage in memory which is > related to restore the process.
That sounds most likely. The complete error in hamerkop's log is: pg_restore: connecting to database for restore pg_restore: [archiver (db)] Error while INITIALIZING: pg_restore: [archiver (db)] could not execute query: ERROR: invalid byte sequence for encoding "UTF8": 0x93 Command was: -- Started on 2014-10-26 03:06:00 “Œ‹ž (•W€Žž) This "Started on" business comes from pg_backup_archiver.c, which has if (AH->public.verbose) dumpTimestamp(AH, "Started on", AH->createDate); where dumpTimestamp is /* * dumpTimestamp */ static void dumpTimestamp(ArchiveHandle *AH, const char *msg, time_t tim) { char buf[64]; if (strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %z", localtime(&tim)) != 0) ahprintf(AH, "-- %s %s\n\n", msg, buf); } So this seems related to the %z part of the strftime() call. I have no explanation for this failure ATM; maybe pg_restore is failing to set the locale properly? I also notice pg_restore.c previously included pg_backup_archiver.h (which in turn includes <time.h>); strftime requires <time.h> so maybe this is causing a problem, but since pg_restore.c itself is not calling strftime, I don't see how this would be related. [Some more code and git-log reading later] I see that the %z is a very recent addition: it only got there as of commit ad5d46a449, of September 5th ... and now I also see that hamerkop's last green run before the failure, on Oct 13rd, did *not* include the pg_upgrade check. So I'm thinking this was broken much earlier than 0eea804. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers