Re: FastPath blocked when ERROR is thrown
От | Dave Cramer |
---|---|
Тема | Re: FastPath blocked when ERROR is thrown |
Дата | |
Msg-id | AC201B08-CFA2-4F2F-9C20-2240A1429B9D@fastcrypt.com обсуждение исходный текст |
Ответ на | FastPath blocked when ERROR is thrown ("Yi Lin" <ylin30@cs.mcgill.ca>) |
Список | pgsql-jdbc |
If you managed to kill the backend, then it's likely the C function that did it. In order to debug it you can use gdb Can you call the C function from psql without crashing ? Dave On 11-Apr-06, at 6:06 PM, Yi Lin wrote: > 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====================== > > > ---------------------------(end of > broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster >
В списке pgsql-jdbc по дате отправления: