"YAMAMOTO Takashi" <y...@mwd.biglobe.ne.jp> wrote:
 
> heap_fetch calls CheckForSerializableConflictOut without buffer
> locked. it ends up an assertion failure in
> SetBufferCommitInfoNeedsSave.
> 
> 
> diff --git a/src/backend/access/heap/heapam.c
> b/src/backend/access/heap/heapam.c
> index 7dcc601..89697f6 100644
> --- a/src/backend/access/heap/heapam.c
> +++ b/src/backend/access/heap/heapam.c
> @@ -1472,10 +1472,10 @@ heap_fetch(Relation relation,
>       if (valid)
>               PredicateLockTuple(relation, tuple);
>  
> -     LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
> -
>       CheckForSerializableConflictOut(valid, relation, tuple,
buffer);
>  
> +     LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
> +
>       if (valid)
>       {
>               /*
 
Thanks so much for all your SSI testing!  And thanks for your
excellent diagnosis when you hit a problem!  If you can think of any
portable tests we could add, please share.
 
-Kevin

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to