Re: Too-long socket paths are breaking several buildfarm members
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org, Noah Misch <noah@leadboat.com>
Date: 2022-07-04T01:34:42Z
Lists: pgsql-hackers
Attachments
- upgrade-tap-shorttemp.patch (text/x-diff) patch
On Sun, Jul 03, 2022 at 07:22:11PM -0400, Tom Lane wrote: > That path name is 3 bytes over the platform limit. Evidently, > "REL_15_STABLE" is just enough longer than "HEAD" to make this fail, > whereas we didn't see the problem as long as the test case only > ran in HEAD. That tells enough about UNIXSOCK_PATH_BUFLEN. It looks like test.sh has been using for ages /tmp/pg_upgrade_check* as socket directory to counter this issue. > Members butterflyfish, massasauga, and myna likewise have yet to pass > this test in REL_15_STABLE, though they're perfectly happy in HEAD. > They are returning cut-down logs that don't allow diagnosing for > certain, but a reasonable bet is that it's the same kind of problem. Hmm. That's possible. > I think that the conversion of pg_upgrade's test script to TAP > form missed a bet. IIRC, we have mechanism somewhere to ensure > that test socket path names are created under /tmp, or someplace else > that's not subject to possibly-long paths of installation directories. > That's evidently not being used here. There is PostgreSQL::Test::Utils::tempdir_short for that, which is what all the nodes created in Cluster.pm use for unix_socket_directories. One way to address the issue would be to pass that to pg_upgrade with --socketdir, as of the attached. -- Michael
Commits
-
Use a short socket directory path in pg_upgrade testing.
- 5c1d80ea7797 15.0 landed
- 255625df1d3a 16.0 landed