Re: Anti-critical-section assertion failure in mcxt.c reached by walsender - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Anti-critical-section assertion failure in mcxt.c reached by walsender
Date
Msg-id 20210507043833.byu5qr25dctfsova@alap3.anarazel.de
Whole thread Raw
In response to Re: Anti-critical-section assertion failure in mcxt.c reached by walsender  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Anti-critical-section assertion failure in mcxt.c reached by walsender
List pgsql-hackers
Hi,

On 2021-05-07 00:30:11 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2021-05-06 21:43:32 -0400, Tom Lane wrote:
> >> That I'm not sure about.  gdb is certainly installed, and thorntail is
> >> visibly running the current buildfarm client and is configured with the
> >> correct core_file_glob, and I can report that the crash did leave a 'core'
> >> file in the data directory (so it's not a case of systemd commandeering
> >> the core dump).  Seems like core-file collection should've worked
> >> ... unless maybe it's not covering TAP tests at all?
> 
> > I suspect that is it - there's not really a good way for the buildfarm
> > client to even know where there could be data directories :(.
> 
> Does it need to?  I'm envisioning "find tmp_check -name '$core_file_glob'"
> or something along that line.

Yea, it'd be doable that way. It'd be a bit harder to associate the core
files with specific tests though. But I now checked, and it indeed
checks for core files in a specific subset of tests, and that that test
only globs inside the passed-in datadir.

sub get_stack_trace
{
        return get_stack_trace_cygwin(@_) if ($ENV{CYGWIN});

        my $bindir = shift;
        my $pgdata = shift;

        # no core = no result
        my @cores = glob("$pgdata/$core_file_glob");
        return () unless @cores;
...

andres@awork3:~/src/pgbuildfarm-client$ ack get_stack_trace
run_build.pl
1601:          get_stack_trace("$installdir/bin", "$installdir/data-$locale");
1637:          get_stack_trace("$installdir/bin", "$installdir/data-$locale");
1711:        my @trace = get_stack_trace("$installdir/bin", "$installdir/data");
1750:          get_stack_trace("$installdir/bin", "$installdir/data-$locale");
1798:          get_stack_trace("$installdir/bin", "$installdir/data-$locale");
2010:        my @trace = get_stack_trace("$binloc$installdir/bin", "$base/data");
2061:          get_stack_trace("$base/install$installdir/bin", "$base/data");

PGBuild/Utils.pm
30:  get_stack_trace cleanlogs writelog
148:sub get_stack_trace_cygwin
173:sub get_stack_trace
175:    return get_stack_trace_cygwin(@_) if ($ENV{CYGWIN});

PGBuild/Modules/RedisFDW.pm
214:          get_stack_trace("$installdir/bin", "$installdir/data-$locale");

PGBuild/Modules/TestUpgrade.pm
148:        my @trace = get_stack_trace("$tmp_bin_dir", "$tmp_data_dir");

PGBuild/Modules/TestCollateLinuxUTF8.pm
122:          get_stack_trace("$installdir/bin", "$installdir/data-$locale");

PGBuild/Modules/TestICU.pm
110:          get_stack_trace("$installdir/bin", "$installdir/data-$locale");


Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Anti-critical-section assertion failure in mcxt.c reached by walsender
Next
From: Thomas Munro
Date:
Subject: Re: Anti-critical-section assertion failure in mcxt.c reached by walsender