[Pljava-dev] java.sql.SQLException: An attempt was made to call a PostgreSQL backend function while main thread was not in the JVM - RESOLVED!

Petr Michálek pmichalek at click.cz
Sun Sep 19 16:53:48 UTC 2004


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




More information about the Pljava-dev mailing list