On 2018-Jul-19, Quan TRAN wrote: > Hello, > > In worker.c: > > - in apply_handle_insert, slot_store_cstrings is called before > PushActiveSnapshot > - in apply_handle_update & apply_handle_delete, slot_store_cstrings is > called after PushActiveSnapshot > > /* Process and store remote tuple in the slot */ > oldctx = MemoryContextSwitchTo(GetPerTupleMemoryContext(estate)); > slot_store_cstrings(remoteslot, rel, newtup.values); > slot_fill_defaults(rel, estate, remoteslot); > MemoryContextSwitchTo(oldctx); > > PushActiveSnapshot(GetTransactionSnapshot()); > > Should this be the cause?
Yeah, moving the PushActiveSnapshot call to just before slot_store_cstrings sounds right. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services