Re: Unstable tests for recovery conflict handling - Mailing list pgsql-hackers

From Mark Dilger
Subject Re: Unstable tests for recovery conflict handling
Date
Msg-id A188C72D-E63F-405A-8992-237E1995CB38@enterprisedb.com
Whole thread Raw
In response to Re: Unstable tests for recovery conflict handling  (Mark Dilger <mark.dilger@enterprisedb.com>)
Responses Re: Unstable tests for recovery conflict handling  (Thomas Munro <thomas.munro@gmail.com>)
List pgsql-hackers

> On Apr 27, 2022, at 10:11 AM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:
>
> I'll try again on master....

Still with coverage and dtrace enabled, I get the same thing, except that master formats the logs a bit differently:

# Postmaster PID for node "primary" is 19797
psql:<stdin>:1: ERROR:  prepared transaction with identifier "xact_012_1" does not exist
[10:26:16.314](1.215s) not ok 11 - Rollback of PGPROC_MAX_CACHED_SUBXIDS+ prepared transaction on promoted standby
[10:26:16.314](0.000s)
[10:26:16.314](0.000s) #   Failed test 'Rollback of PGPROC_MAX_CACHED_SUBXIDS+ prepared transaction on promoted
standby'
[10:26:16.314](0.000s) #   at t/012_subtransactions.pl line 208.
[10:26:16.314](0.000s) #          got: '3'
#     expected: '0'


With coverage but not dtrace enabled, I still get the error, though the log leading up to the error now has a bunch of
coveragenoise lines like: 

profiling: /Users/mark.dilger/recovery_test/postgresql/src/backend/utils/sort/tuplesort.gcda: cannot merge previous
GCDAfile: corrupt arc tag 

The error itself looks the same except the timing numbers differ a little.


With neither enabled, all tests pass.


I'm inclined to think that either the recovery code or the test have a race condition, and that enabling coverage
causesthe race to come out differently.  I'll keep poking.... 

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company






pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: pgsql: Add contrib/pg_walinspect.
Next
From: Tom Lane
Date:
Subject: Re: Unstable tests for recovery conflict handling