Thread

Commits

  1. Use a short socket directory path in pg_upgrade testing.

  1. Too-long socket paths are breaking several buildfarm members

    Tom Lane <tgl@sss.pgh.pa.us> — 2022-07-03T23:22:11Z

    Buildfarm member thorntail has yet to pass the pg_upgrade test
    in the REL_15_STABLE branch.  It looks like the problem reduces to
    an overlength pathname:
    
    2022-07-04 00:27:03.404 MSK [2212393:2] LOG:  Unix-domain socket path "/home/nm/farm/sparc64_deb10_gcc_64_ubsan/REL_15_STABLE/pgsql.build/src/bin/pg_upgrade/tmp_check/.s.PGSQL.49714" is too long (maximum 107 bytes)
    
    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.
    
    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.
    
    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.
    
    			regards, tom lane
    
    
    
    
  2. Re: Too-long socket paths are breaking several buildfarm members

    Michael Paquier <michael@paquier.xyz> — 2022-07-04T01:34:42Z

    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
    
  3. Re: Too-long socket paths are breaking several buildfarm members

    Tom Lane <tgl@sss.pgh.pa.us> — 2022-07-04T01:40:23Z

    Michael Paquier <michael@paquier.xyz> writes:
    > 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.
    
    Yeah, I just came to the same conclusion and pushed an equivalent
    patch.  Sorry for the duplicated effort.
    
    			regards, tom lane
    
    
    
    
  4. Re: Too-long socket paths are breaking several buildfarm members

    Michael Paquier <michael@paquier.xyz> — 2022-07-04T03:01:28Z

    On Sun, Jul 03, 2022 at 09:40:23PM -0400, Tom Lane wrote:
    > Yeah, I just came to the same conclusion and pushed an equivalent
    > patch.  Sorry for the duplicated effort.
    
    No problem.  Thanks for the quick fix.
    --
    Michael