On Wed, 2008-10-22 at 20:52 +0100, Simon Riggs wrote:
> Took a while, but yes, I can reproduce this now. Analysing...
OK, I think I see what it's doing and why it fails the assert.
It's nothing to do with confusing commit/abort.
The new way of doing things on commit is to subcommit then commit. This
sequence is repeated during WAL replay. If we crash, it will try to
repeat the sequence, so in some cases it will try to set status to
subcommitted on a transaction already marked as committed.
So it fails the Assertion, but does the right thing.
A few ways to fix this, but patch to make that case a no-op is attached.
--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support