Re: [JDBC] Strange server error with current 8.0beta driver - Mailing list pgsql-hackers

From Barry Lind
Subject Re: [JDBC] Strange server error with current 8.0beta driver
Date
Msg-id 03E7D3E231BB7B4A915A6581D4296CC6CC9794@NSNOVPS00411.nacio.xythos.com
Whole thread Raw
Responses Re: [JDBC] Strange server error with current 8.0beta driver  (Oliver Jowett <oliver@opencloud.com>)
List pgsql-hackers
Tom,

Here is what you requested.  (Thanks to Oliver for the good logging in
the jdbc driver).

I also have the test case (in java) down to the bare minimum that
generated the following output (that test case is attached).  (Note that
if the FETCH in the test case is not executed then the backend crashes;
with the FETCH you get an error: "ERROR: unrecognized node type: 0")

Thanks,
--Barry


PostgreSQL 8.0devel JDBC3 with SSL (build 308)
Trying to establish a protocol version 3 connection to localhost:5432
 FE=> StartupPacket(user=blind, database=fileswfs43,
client_encoding=UNICODE, DateStyle=ISO)
 <=BE AuthenticationOk
 <=BE ParameterStatus(client_encoding = UNICODE)
 <=BE ParameterStatus(DateStyle = ISO, MDY)
 <=BE ParameterStatus(integer_datetimes = off)
 <=BE ParameterStatus(is_superuser = on)
 <=BE ParameterStatus(server_encoding = UNICODE)
 <=BE ParameterStatus(server_version = 8.0.0beta4)
 <=BE ParameterStatus(session_authorization = blind)
 <=BE BackendKeyData(pid=3348,ckey=914259969)
 <=BE ReadyForQuery(I)
    compatible = 8.0
    loglevel = 2
    prepare threshold = 1
getConnection returning
driver[className=org.postgresql.Driver,org.postgresql.Driver@a9ae05]
simple execute,
handler=org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandl
er@1df5a8f, maxRows=0, fetchSize=0, flags=0
 FE=> Parse(stmt=S_1,query="BEGIN",oids={})
 FE=> Bind(stmt=S_1,portal=null)
 FE=> Execute(portal=null,limit=0)
 FE=> Parse(stmt=S_2,query="DECLARE CUR CURSOR FOR SELECT 1",oids={})
 FE=> Bind(stmt=S_2,portal=null)
 FE=> Describe(portal=null)
 FE=> Execute(portal=null,limit=0)
 FE=> Sync
 <=BE ParseComplete [S_1]
 <=BE BindComplete [null]
 <=BE CommandStatus(BEGIN)
 <=BE ParseComplete [S_2]
 <=BE BindComplete [null]
 <=BE NoData
 <=BE CommandStatus(DECLARE CURSOR)
 <=BE ReadyForQuery(T)
simple execute,
handler=org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandl
er@1db699b, maxRows=0, fetchSize=0, flags=0
 FE=> Parse(stmt=S_3,query="FETCH FORWARD 10 FROM CUR",oids={})
 FE=> Bind(stmt=S_3,portal=null)
 FE=> Describe(portal=null)
 FE=> Execute(portal=null,limit=0)
 FE=> Sync
 <=BE ParseComplete [S_3]
 <=BE BindComplete [null]
 <=BE RowDescription(1)
 <=BE DataRow
 <=BE CommandStatus(FETCH)
 <=BE ReadyForQuery(T)
simple execute,
handler=org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandl
er@12a0f6c, maxRows=0, fetchSize=0, flags=0
 FE=> Parse(stmt=S_4,query="CLOSE CUR",oids={})
 FE=> Bind(stmt=S_4,portal=null)
 FE=> Describe(portal=null)
 FE=> Execute(portal=null,limit=0)
 FE=> Sync
 <=BE ParseComplete [S_4]
 <=BE BindComplete [null]
 <=BE NoData
 <=BE CommandStatus(CLOSE CURSOR)
 <=BE ReadyForQuery(T)
simple execute,
handler=org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandl
er@134a7d8, maxRows=0, fetchSize=0, flags=0
 FE=> Bind(stmt=S_2,portal=null)
 FE=> Describe(portal=null)
 FE=> Execute(portal=null,limit=0)
 FE=> Sync
 <=BE BindComplete [null]
 <=BE NoData
 <=BE ErrorMessage(ERROR: unrecognized node type: 0
  Location: File: clauses.c, Routine: expression_tree_mutator, Line:
3220
  Server SQLState: XX000)
java.sql.SQLException: ERROR: unrecognized node type: 0
  Location: File: clauses.c, Routine: expression_tree_mutator, Line:
3220
  Server SQLState: XX000
    at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecu
torImpl.java:1356)
    at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImp
l.java:1151)
    at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:
166)
    at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Stateme
nt.java:363)
    at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdb
c2Statement.java:308)
    at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Stateme
nt.java:299)
    at test80.main(test80.java:31)
SQLException: SQLState(XX000)
 <=BE ReadyForQuery(E)
java.sql.SQLException: ERROR: unrecognized node type: 0
  Location: File: clauses.c, Routine: expression_tree_mutator, Line:
3220
  Server SQLState: XX000



-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Tuesday, November 23, 2004 7:10 AM
To: Barry Lind
Cc: pgsql-jdbc@postgresql.org; pgsql-hackers@postgresql.org
Subject: Re: [HACKERS] [JDBC] Strange server error with current 8.0beta
driver

"Barry Lind" <blind@xythos.com> writes:
> OK, getting closer.  The error happens if in jdbc I reuse
> PreparedStatement objects to reexecute the same set of queries
> multiple times.

The TRAP you showed looked like it might have something to do with
trying to execute code outside any transaction.  But I dunno how it got
there.

> If you still need a test case, let me know, and I will continue to
> package up what I have been working on.

What I'd actually rather have is a list of the exact sequence of
messages sent to the server.

            regards, tom lane


Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Plperl Safe version check fails for Safe 2.09
Next
From: Tom Lane
Date:
Subject: Re: Big number of schemas (3500) into a single database