BUG #6482: Service terminates executing "With ... as ... UPDATE" query

Lists: pgsql-bugs
From: dzolotarevskiy(at)gmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6482: Service terminates executing "With ... as ... UPDATE" query
Date: 2012-02-22 15:12:12
Message-ID: E1S0DrY-0007GQ-9O@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 6482
Logged by: Dmitriy
Email address: dzolotarevskiy(at)gmail(dot)com
PostgreSQL version: 9.1.2
Operating system: Windows Server 2003 r2 32bit
Description:

All Postgres processes terinates.
In log you can find only
LOG: server process (PID ...) was terminated by exception OxC0000005.

All queries works fine when there is only one session. When Sessions more
then 20 it starts terminating with some probability.
On my production server it stops about 50 times per day.
On my dev pc, with testing utility that uses 50 sessions at one time, it
falls down in about 1 minute.

Investigating problem i have found the "fatal" query and excluding part by
part found out that new syntax produce that exception.

To reproduce create 3 tables and execute my query in at least 20
simultaneous threads, each one should use separate session.

Tables:
user_task (pk id, fk user_proxy_id)
user_proxy (pk id, fk proxy_last_id, date)
proxy_last (pk id, last_used)

Query:

with mup as
(
UPDATE user_proxy
SET date = now()
WHERE id=
(select user_proxy_id
from user_task
where id=420
)
returning proxy_last_id
)
UPDATE proxy_last
SET last_used = now()
WHERE id=(select proxy_last_id
from mup);

I have solved the problem rewriting query to old syntax.


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: dzolotarevskiy(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6482: Service terminates executing "With ... as ... UPDATE" query
Date: 2012-02-22 20:16:40
Message-ID: 24067.1329941800@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

dzolotarevskiy(at)gmail(dot)com writes:
> All queries works fine when there is only one session. When Sessions more
> then 20 it starts terminating with some probability.
> On my production server it stops about 50 times per day.
> On my dev pc, with testing utility that uses 50 sessions at one time, it
> falls down in about 1 minute.

> Investigating problem i have found the "fatal" query and excluding part by
> part found out that new syntax produce that exception.

I believe this is an already-known issue:
http://archives.postgresql.org/pgsql-bugs/2012-01/msg00157.php

It will be fixed in next week's update releases.

regards, tom lane