Re: pgsql: Catalog changes preparing for builtin collation provider.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Catalog changes preparing for builtin collation provider.
Date: 2024-03-11 20:15:39
Message-ID: 1547879.1710188139@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Jeff Davis <pgsql(at)j-davis(dot)com> writes:
> I found it. On perl 5.16.3 on a failing instance:
> use strict;
> die '"" does not match qr// before substitution' unless '' =~ qr//;
> my $foo = ('|a|' =~ s/a//r);
> die '"" does not match qr// after substitution' unless '' =~ qr//;
> print "$foo\n";
> dies with:
> "" does not match qr// after substitution at - line 4.

Wow.

> That's so bizarre that I have to guess that it's a perl bug.

I agree.

> Assuming that it is a perl bug, there are two potential workarounds:
> 1. Use qr/^$/ for the test rather than qr//.
> 2. Don't use s/// anywhere. Find another way to transform devel
> versions into numbers.
> Either one has the potential to leave traps for later. New tests might
> either rely on s/// or expect qr// to work. I am inclined toward #1,
> because if we use qr/^$/, other tests are likely to copy it and they
> will be safe as well.

I like #1 as well, because qr// imposes zero constraints on what
the command's stderr is. Checking qr/^$/ would express what we
really want to express, namely no stderr output.

> Though I'm still not sure what's going on with longfin.

Me too, not least because your minimal example fails just as above
with longfin's 5.14.0 build. The fact that longfin nonetheless
passes the whole test indicates that something in between those
steps manages to clean up whatever the broken state is.

I also see that none of the other animals running 5.16.3 ever
showed the failure. This could easily indicate some bizarre
platform-specificity in the bug. It could also mean that the
Linux vendors started carrying patches for this bug, but the
three machines that failed are too old to have any such patch.
Digging in perl's revision history might be interesting if we
really felt the need to identify the bug precisely, but I don't.
Let's just go with your #1.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2024-03-11 20:21:52 Re: pgsql: Catalog changes preparing for builtin collation provider.
Previous Message Jeff Davis 2024-03-11 19:26:55 Re: pgsql: Catalog changes preparing for builtin collation provider.