On Thu, May 13, 2010 at 8:05 PM, Simon Riggs <si...@2ndquadrant.com> wrote: > On Thu, 2010-05-13 at 19:32 +0900, Fujii Masao wrote: >> On Thu, May 13, 2010 at 7:22 PM, Simon Riggs <si...@2ndquadrant.com> wrote: >> > On Thu, 2010-05-13 at 19:08 +0900, Fujii Masao wrote: >> > >> >> I was able to reproduce such a hang by not executing another >> >> transaction after rollback. In this case, walsender cannot replicate >> >> the rollback since it's not in the disk. >> > >> > WALWriter is not active? >> >> WALWriter is active, but unfortunately it doesn't flush all of the WAL >> records in wal_buffers. Please see XLogBackgroundFlush(). > > Yes, I wrote it. It flushes after at most 3 cycles, stated in comments.
Yeah, what is worse is that RecordTransactionAbort() doesn't update the XLogCtl->asyncCommitLSN, so rollback might not be flushed even after at 3 cycles. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers