On 2014-03-17 14:29:56 -0400, Tom Lane wrote: > Andres Freund <and...@2ndquadrant.com> writes: > > To me that looks sufficient to trigger the bug, because we're issuing a > > wal record about the row that was passed to heap_lock_update(), not the > > latest one in the ctid chain. When replaying that record, it will reset > > the t_ctid field, thus breaking the chain. > > [ scratches head ... ] If that's what's happening, isn't it a bug in > itself? Surely the WAL record ought to point at the tuple that was > locked.
There's a separate XLOG_HEAP2_LOCK_UPDATED record, for every later tuple version, emitted by heap_lock_updated_tuple_rec(). This really is mind bendingly complex :(. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers