FastPath blocked when ERROR is thrown

Поиск
Список
Период
Сортировка
От Yi Lin
Тема FastPath blocked when ERROR is thrown
Дата
Msg-id 59619.132.206.52.74.1144793175.squirrel@mail.cs.mcgill.ca
обсуждение исходный текст
Ответы Re: FastPath blocked when ERROR is thrown  (Dave Cramer <pg@fastcrypt.com>)
Re: FastPath blocked when ERROR is thrown  (Kris Jurka <books@ejurka.com>)
Список pgsql-jdbc
HI

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 DB backend is
also dead. I have to "pkill -9 post" in order to restore everything. Can
anyone give a clue of what the problems should be? Where should are the
bugs possibly located?

The java codes is attached:

public boolean putWriteSet(java.sql.Connection conn, byte[] writeSet)
  throws SQLException
{
   Fastpath fp = ((org.postgresql.Connection)conn).getFastpathAPI();
   FastpathArg[] args = new FastpathArg[1];
   args[0] = new FastpathArg(writeSet);
   fp.fastpath(2075, false, args);   //to apply writeset, indirectly call
PQfn(conn, 2075, ...) implemented in the kernal in C.

   return true;
}

I am not the original author of C version PQfn(.,2075,..) so I have no
idea where and how to debug it. I doubt that the blocking is due to
implementation of C part instead of Java part. But I don't know how to
start my debugging.

thanks in advance!

=======================================
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 по дате отправления:

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Re: Calendar vs. Timestamp
Следующее
От: Dave Cramer
Дата:
Сообщение: Re: FastPath blocked when ERROR is thrown