Re: Removing support for COPY FROM STDIN in protocol version 2

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: joseph.ayers@crunchydata.com, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael@paquier.xyz>, Alvaro Herrera <alvherre@alvh.no-ip.org>, pgsql-hackers <pgsql-hackers@postgresql.org>, Andrew Dunstan <andrew@dunslane.net>
Date: 2021-03-04T20:55:54Z
Lists: pgsql-hackers
On 04/03/2021 22:04, Tom Lane wrote:
> Heikki Linnakangas <hlinnaka@iki.fi> writes:
>>> I concur that 0001 attached is committable.  I have not looked at
>>> your 0002, though.
> 
>> Removed the entry from nls.mk, and pushed 0001. Thanks!
> 
> It seems that buildfarm member walleye doesn't like this.
> Since nothing else is complaining, I confess bafflement
> as to why.  walleye seems to be our only active mingw animal,
> so maybe there's a platform dependency somewhere ... but
> how would (mostly) removal of code expose that?

Strange indeed. The commands that are crashing seem far detached from 
any FE/BE protocol handling, and I don't see any other pattern either:

2021-03-04 05:08:45.953 EST [4080:94] DETAIL:  Failed process was 
running: copy (insert into copydml_test default values) to stdout;

2021-03-04 05:09:22.690 EST [4080:100] DETAIL:  Failed process was 
running: CREATE INDEX CONCURRENTLY concur_index7 ON concur_heap(f1);

2021-03-04 05:09:33.546 EST [4080:106] DETAIL:  Failed process was 
running: ANALYZE vaccluster;

2021-03-04 05:09:42.452 EST [4080:112] DETAIL:  Failed process was 
running: FETCH BACKWARD 1 FROM foo24;

2021-03-04 05:10:06.874 EST [4080:118] DETAIL:  Failed process was 
running: REFRESH MATERIALIZED VIEW CONCURRENTLY mvtest_tvmm;

2021-03-04 05:12:23.890 EST [4080:125] DETAIL:  Failed process was 
running: CREATE SUBSCRIPTION regress_testsub CONNECTION 'testconn' 
PUBLICATION testpub;

2021-03-04 05:15:46.421 EST [4080:297] DETAIL:  Failed process was 
running: INSERT INTO xmltest VALUES (3, '<wrong');

Dare I suggest a compiler bug? gcc 8.1 isn't the fully up-to-date, 
although I don't know if there's a newer gcc available on this platform. 
Joseph, any chance we could see a backtrace or some other details from 
those crashes?



'drongo' just reported linker errors:

postgres.def : error LNK2001: unresolved external symbol 
GetOldFunctionMessage 
[c:\\prog\\bf\\root\\HEAD\\pgsql.build\\postgres.vcxproj]
postgres.def : error LNK2001: unresolved external symbol errfunction 
[c:\\prog\\bf\\root\\HEAD\\pgsql.build\\postgres.vcxproj]
postgres.def : error LNK2001: unresolved external symbol pq_getstring 
[c:\\prog\\bf\\root\\HEAD\\pgsql.build\\postgres.vcxproj]
postgres.def : error LNK2001: unresolved external symbol pq_putbytes 
[c:\\prog\\bf\\root\\HEAD\\pgsql.build\\postgres.vcxproj]
Release/postgres/postgres.lib : fatal error LNK1120: 4 unresolved 
externals [c:\\prog\\bf\\root\\HEAD\\pgsql.build\\postgres.vcxproj]
Done Building Project 
"c:\\prog\\bf\\root\\HEAD\\pgsql.build\\postgres.vcxproj" (default 
targets) -- FAILED.

Looks like it wasn't a clean build, those functions and all the callers 
were removed by the patch. That's a separate issue than on 'walleye' - 
unless that was also not a completely clean build?

- Heikki



Commits

  1. Avoid extra newline in errors received in FE protocol version 2.

  2. Remove server and libpq support for old FE/BE protocol version 2.

  3. Handle reading of startup packet and authentication exchange after forking