Re: FastPath blocked when ERROR is thrown
От | Yi Lin |
---|---|
Тема | Re: FastPath blocked when ERROR is thrown |
Дата | |
Msg-id | 61065.65.92.138.65.1144804033.squirrel@mail.cs.mcgill.ca обсуждение исходный текст |
Ответ на | FastPath blocked when ERROR is thrown ("Yi Lin" <ylin30@cs.mcgill.ca>) |
Ответы |
Re: FastPath blocked when ERROR is thrown
|
Список | 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======================
В списке pgsql-jdbc по дате отправления: