Re: FastPath blocked when ERROR is thrown

From: "Yi Lin" <ylin30(at)cs(dot)mcgill(dot)ca>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: FastPath blocked when ERROR is thrown
Date: 2006-04-12 01:07:13
Message-ID: 61065.65.92.138.65.1144804033.squirrel@mail.cs.mcgill.ca
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

HI Kris Jurka:

>> I used java API FastPath.fastpath(fid, ...) to call a C function
>> PGfn(conn, fid,...) in the kernal. But if there is an exception (i.e.,
>> ERROR messages is thrown in the backend due to elog(ERROR, ...)), the
>> FastPath.fastpath(fid, ..) is blocked and never returns.
>>
>
> The attached code runs fine with the cvs jdbc driver and a 8.0.7 server.
> You haven't mentioned your versions, but this code hasn't changed recently
> so anything relatively new should be fine.
>

I am using a modified version of Postgresql 7.2. It was modified by adding
Writeset functionality needed by replication such as Postgres-R. The
function Fastpath.fastpath(2075, ..) -> PQfn(conn, 2075, ..) in the
attached codes will trigger a non-standard function putWriteset()
implemented by one previous student in my lab. So I don't think you tested
the attached codes against the PQfn(..) which I am worried about.

It seems to me that the exception caused by elog(ERROR, ..) is not thrown
upto Fastpath.fastpath(2075, ..). But I know so little about the kernal of
postgresql that I can't trace the bug. Could u please give me some hints
(e.g., the functions or files to examinate)? I am going to check if the C
version PQfn(..) will be blocked by ERROR or not.

> How do you know the function is erroring out? What does the server log
> say?

I intentionally inserted a tuple twice in two separated txns hence the
second insertion txn would cause an ERROR message. And then the function
fastpath(..) gets blocked forever. The error message is sth like:

ERROR: can't insert the same key to index t_a_pk_index twice. Tuple exists
already. To abort the transaction (No Error).

Sorry I don't know how to read server logs at all.

thanks a lot!

Yi

>
> Kris Jurka

=======================================
Yi Lin

Ph.D. candidate
School of Computer Science
McGill University
Montreal, Quebec,Canada
URL: http://www.cs.mcgill.ca/~ylin30/

\\\ $ ///
@ @
======o0o==0==o0o======================

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Markus Riehl 2006-04-12 03:50:00 Re: No automatic reconnect after network error
Previous Message Wei Wei 2006-04-11 23:53:55 Re: Calendar vs. Timestamp