From: pmichalek at click.cz (=?ISO-8859-1?Q?Petr_Mich=E1lek?=) Date: Sun, 19 Sep 2004 18:53:48 +0200 Subject: [Pljava-dev] java.sql.SQLException: An attempt was made to call a PostgreSQL backend function while main thread was not in the JVM - RESOLVED! In-Reply-To: References: <414DAD18.6080405@click.cz> <414DB178.7030908@mailblocks.com> Message-ID: <414DB99C.3050006@click.cz> Thomas Hallgren wrote: > Petr, > >> Hi! >> >> I am repeatedly calling SQL function, and trigger function fired by >> "UPDATE" in sql function crashes with folowing exception. Crash is >> reliable after 100 calls. >> >> java.sql.SQLException: ERROR: java.sql.SQLException: An attempt was >> made to call a PostgreSQL backend function while main thread was not >> in the JVM >> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1130) >> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:933) >> >> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:139) >> >> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:346) >> >> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:294) >> >> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:285) >> >> >> Exception is generated by native method in class >> org.postgresql.pljava.internal.TriggerData function >> >> public boolean isFiredAfter() throws SQLException >> { >> synchronized(Backend.THREADLOCK) >> { >> >>> return this._isFiredAfter(); >> } >> } > > > I'd like to see the error generated by the backend (the backtrace above > is from the client driver). Can you copy that from the backend log and > email it to me? Also, info concerning the versions of postgresql, > pljava, and java is helpful. A code example that I can run in order to > reproduce your problem is of course ideal. > > Thanks, > > Thomas Hallgren > > > Hi! It was my fault! I forgot to close prepared statement! Petr Michalek Postgresql 8.0.0beta2 Java JDK1.5 RC Backend log example: LOG: database system was shut down at 2004-09-19 18:40:51 CEST LOG: checkpoint record is at 0/979AAA9C LOG: redo record is at 0/979AAA9C; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 1463312; next OID: 82024 LOG: database system is ready LOG: unexpected EOF on client connection WARNING: Freeing plan using finalizer. Someone forgot to close a PreparedStatement . . . WARNING: Freeing plan using finalizer. Someone forgot to close a PreparedStatement LOG: Exception LOG: in thread "main" java.sql.SQLException: An attempt was made to call a PostgreSQL backend function while main thread was not in the JVM at org.postgresql.pljava.internal.TriggerData._isFiredAfter(Native Method) at org.postgresql.pljava.internal.TriggerData.isFiredAfter(TriggerData.java:219) at com.aca.app.acc.core.postgresql.Triggers.document1(Triggers.java:569) ERROR: java.sql.SQLException: An attempt was made to call a PostgreSQL backend function while main thread was not in the JVM LOG: server process (PID 22300) was terminated by signal 6 LOG: terminating any other active server processes LOG: all server processes terminated; reinitializing LOG: database system was interrupted at 2004-09-19 18:40:57 CEST LOG: checkpoint record is at 0/979AAA9C LOG: redo record is at 0/979AAA9C; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 1463312; next OID: 82024 LOG: database system was not properly shut down; automatic recovery in progress LOG: redo starts at 0/979AAAD8 LOG: record with zero length at 0/97A96E54 LOG: redo done at 0/97A96E14 LOG: database system is ready