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

Reply via email to