Re: slru.c race condition (was Re: TRAP: FailedAssertion("!((itemid)->lp_flags & 0x01)", )

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Jim C. Nasby" <jnasby@pervasive.com>
Cc: Gavin Sherry <swm@linuxworld.com.au>, pgsql-hackers@postgresql.org
Date: 2005-11-01T19:21:29Z
Lists: pgsql-hackers
"Jim C. Nasby" <jnasby@pervasive.com> writes:
> Doesn't clog use the same code?

Yeah, but all three of your examples were referencing pg_subtrans,
as proven by the stack traces and the contents of the shared control
block.

Even though the bug seems completely clog.c's fault, this is not a
coincidence: if subtransactions are being used heavily, then pg_subtrans
would have far greater I/O volume than any of the other clog-managed
logs, and hence have more exposure to the race condition.

We really ought to fix that code so that pg_subtrans can have more
buffers than pg_clog...

			regards, tom lane