Re: TRAP: FailedAssertion("tabstat->trans == trans", File: "pgstat_relation.c", Line: 508
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Erik Rijkers <er@xs4all.nl>
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2022-04-19T17:55:26Z
Lists: pgsql-hackers
Hi, On 2022-04-19 10:36:24 -0700, Andres Freund wrote: > On 2022-04-19 13:50:25 +0200, Erik Rijkers wrote: > > The 12th run of statbug.sh crashed and gave a corefile. > > I ran through quite a few iterations by now, without reproducing :( > > I guess there's some timing issue and you're hitting on your system > due to the slower disks. Ah. I found the issue. The new pgstat_report_stat(true) call in LogicalRepApplyLoop()'s "timeout" section doesn't check if we're in a transaction. And the transactional stats code doesn't handle that (never has). I think all that's needed is a if (IsTransactionState()) around that pgstat_report_stat(). It might be possible to put an assertion into pgstat_report_stat(), but I need to look at the process exit code to see if it is. Greetings, Andres Freund
Commits
-
Don't report stats in LogicalRepApplyLoop() when in xact.
- 0cf16cb8ca48 15.0 landed