RE: Crash on UPDATE in 7.0beta3

From: Magnus Hagander <mha(at)sollentuna(dot)net>
To: "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "'pgsql-hackers(at)postgresql(dot)org'" <pgsql-hackers(at)postgresql(dot)org>
Subject: RE: Crash on UPDATE in 7.0beta3
Date: 2000-04-03 13:43:03
Message-ID: 215896B6B5E1CF11BC5600805FFEA821030460A4@sirius.edu.sollentuna.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> I said:
> > ... But I don't
> > understand why having other backends running concurrently
> would affect
> > this.
>
> Yes I do: this entire path of control is only invoked if ExecReplace
> discovers that the tuple it's trying to update is already updated by
> a concurrent transaction. Evidently no one's tried running concurrent
> UPDATEs where the updates use a nestloop+inner indexscan join plan,
> because this path is certain to fail in that case.
>
> Magnus, try swapping the code segments in ExecIndexReScan()
<snip>

Looks much better - at least it doesn't crash. Instead, I the messages
below. I don't know if this is because of the same thing, though - since it
runs into areas I never reached before. But these messages do *not* show up
if I run with fewer backends (or when I run with the old code - crash).

//Magnus

NOTICE: Buffer Leak: [3205] (freeNext=-3, freePrev=-3,
relname=order_items_order_idx, blockNum=13532, flags=0x4, refcount=1 1)
NOTICE: Buffer Leak: [3214] (freeNext=-3, freePrev=-3, relname=order_items,
blockNum=39804, flags=0x4, refcount=1 1)
NOTICE: Buffer Leak: [5110] (freeNext=-3, freePrev=-3,
relname=order_items_order_idx, blockNum=29437, flags=0x4, refcount=1 1)
NOTICE: Buffer Leak: [5117] (freeNext=-3, freePrev=-3, relname=order_items,
blockNum=86602, flags=0x4, refcount=1 1)
NOTICE: Buffer Leak: [13184] (freeNext=-3, freePrev=-3,
relname=order_items_order_idx, blockNum=2115, flags=0x4, refcount=1 1)
NOTICE: Buffer Leak: [13191] (freeNext=-3, freePrev=-3,
relname=order_items, blockNum=6214, flags=0x4, refcount=1 1)
NOTICE: Buffer Leak: [4248] (freeNext=-3, freePrev=-3,
relname=order_items_order_idx, blockNum=29583, flags=0x4, refcount=1 1)
NOTICE: Buffer Leak: [4443] (freeNext=-3, freePrev=-3, relname=order_items,
blockNum=87032, flags=0x4, refcount=1 1)

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2000-04-03 14:14:43 Re: AW: src/test/locale/de_DE.ISO-8859-1
Previous Message The Hermit Hacker 2000-04-03 12:48:00 Re: AW: src/test/locale/de_DE.ISO-8859-1