Thread: Re: [JDBC] server process (PID 1188) exited with exit code -1073741819, 8.2 beta1
Re: [JDBC] server process (PID 1188) exited with exit code -1073741819, 8.2 beta1
From
Dave Cramer
Date:
This is a server bug, I will post to hackers for you, it has little to do with JDBC, however the ? can't be a column in a prepared statement DAVE On 24-Oct-06, at 4:45 PM, JEAN-PIERRE PELLETIER wrote: > Hi, > > I have a query that throws "org.postgresql.util.PSQLException: An I/ > O error occured while sending to the backend". Here is a simplified > version of it where I used pg_database, but any table or view do > the same. > > PreparedStatement pstmt = connection.prepareStatement("select ? > from (select * from pg_database) t"); > pstmt.setObject(1, 1); > ResultSet rs = pstmt.executeQuery(); > > It restarts PostgreSQL with this in the Log > 2006-10-24 15:35:38 LOG: server process (PID 1188) exited with > exit code -1073741819 > 2006-10-24 15:35:38 LOG: terminating any other active server > processes > 2006-10-24 15:35:38 LOG: all server processes terminated; > reinitializing > 2006-10-24 15:35:39 LOG: database system was interrupted at > 2006-10-24 15:34:54 Eastern Standard Time > 2006-10-24 15:35:39 LOG: Windows fopen("recovery.conf","r") > failed: code 2, errno 2 > 2006-10-24 15:35:39 LOG: Windows fopen("pg_xlog/ > 00000001.history","r") failed: code 2, errno 2 > 2006-10-24 15:35:39 LOG: Windows fopen("backup_label","r") failed: > code 2, errno 2 > 2006-10-24 15:35:39 LOG: checkpoint record is at 0/31FDF0A0 > 2006-10-24 15:35:39 LOG: redo record is at 0/31FDF0A0; undo record > is at 0/0; shutdown TRUE > 2006-10-24 15:35:39 LOG: next transaction ID: 0/22535; next OID: > 101011 > 2006-10-24 15:35:39 LOG: next MultiXactId: 1; next MultiXactOffset: 0 > 2006-10-24 15:35:39 LOG: database system was not properly shut > down; automatic recovery in progress > 2006-10-24 15:35:39 LOG: record with zero length at 0/31FDF0F0 > 2006-10-24 15:35:39 LOG: redo is not required > 2006-10-24 15:35:40 LOG: database system is ready > 2006-10-24 15:35:40 LOG: Windows fopen("global/pg_fsm.cache","rb") > failed: code 2, errno 2 > 2006-10-24 15:35:40 LOG: transaction ID wrap limit is 2147484172, > limited by database "postgres" > 2006-10-24 15:36:40 LOG: Windows fopen("global/pgstat.stat","rb") > failed: code 2, errno 2 > 2006-10-24 15:36:40 LOG: Windows fopen("global/pgstat.stat","rb") > failed: code 2, errno 2 > > I am using PostgreSQL 8.2 beta1 on Windows XP, Service Pack 2 > Both JDBC3 driver 8.1 build 407 and 8.2 build 503 do the same. > > Thanks, > Jean-Pierre Pelletier > e-djuster > > > > ---------------------------(end of > broadcast)--------------------------- > TIP 6: explain analyze is your friend >
Re: [JDBC] server process (PID 1188) exited with exit code -1073741819, 8.2 beta1
From
Tom Lane
Date:
Dave Cramer <pg@fastcrypt.com> writes: > This is a server bug, I will post to hackers for you, Please provide a complete test case. I tried to reproduce the failure in libpq, with /* Here is our out-of-line parameter value */ paramValues[0] = "joe's place"; res = PQexecParams(conn, "SELECT $1 FROM (select * from pg_database) t", 1, /* one param */ NULL, /* let the backend deduce param type */ paramValues, NULL, /* don't need param lengths since text */ NULL, /* default to all text params */ 0); /* ask for text results */ and got nothing worse than SELECT failed: ERROR: could not determine data type of parameter $1 regards, tom lane
Tom Lane wrote: > NULL, /* let the backend deduce param type */ I think the JDBC driver will be passing the int4 OID for the param type in this case. Best thing is probably for the OP to run with loglevel=2 and see exactly what's being sent, though. -O
Here is what I get with loglevel=2 08:47:18.718 (1) PostgreSQL 8.2devel JDBC3 with SSL (build 503) 08:47:18.718 (1) Trying to establish a protocol version 3 connection to localhost:5432 08:47:18.859 (1) FE=> StartupPacket(user=postgres, database=main, client_encoding=UNICODE, DateStyle=ISO) 08:47:19.218 (1) <=BE AuthenticationOk 08:47:19.234 (1) <=BE ParameterStatus(client_encoding = UNICODE) 08:47:19.234 (1) <=BE ParameterStatus(DateStyle = ISO, MDY) 08:47:19.234 (1) <=BE ParameterStatus(integer_datetimes = off) 08:47:19.234 (1) <=BE ParameterStatus(is_superuser = on) 08:47:19.234 (1) <=BE ParameterStatus(server_encoding = LATIN1) 08:47:19.234 (1) <=BE ParameterStatus(server_version = 8.2beta1) 08:47:19.234 (1) <=BE ParameterStatus(session_authorization = postgres) 08:47:19.234 (1) <=BE ParameterStatus(standard_conforming_strings = off) 08:47:19.234 (1) <=BE ParameterStatus(TimeZone = US/Eastern) 08:47:19.234 (1) <=BE BackendKeyData(pid=3248,ckey=166035706) 08:47:19.234 (1) <=BE ReadyForQuery(I) 08:47:19.234 (1) compatible = 8.2 08:47:19.234 (1) loglevel = 2 08:47:19.234 (1) prepare threshold = 5 getConnection returning driver[className=org.postgresql.Driver,org.postgresql.Driver@747fa2] 08:47:19.296 (1) simple execute, handler=org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler@18352d8, maxRows=0, fetchSize=0, flags=17 08:47:19.296 (1) FE=> Parse(stmt=null,query="select $1 from (select * from pg_database) t",oids={23}) 08:47:19.296 (1) FE=> Bind(stmt=null,portal=null,$1=<1>) 08:47:19.296 (1) FE=> Describe(portal=null) 08:47:19.296 (1) FE=> Execute(portal=null,limit=0) 08:47:19.296 (1) FE=> Sync 08:47:19.718 (1) FE=> Terminate 08:47:19.718 (1) Discarding IOException on close: java.net.SocketException: Connection reset by peer: socket write errorat java.net.SocketOutputStream.socketWrite0(NativeMethod)at java.net.SocketOutputStream.socketWrite(Unknown Source)at java.net.SocketOutputStream.write(UnknownSource)at java.io.BufferedOutputStream.flushBuffer(Unknown Source)at java.io.BufferedOutputStream.flush(UnknownSource)at org.postgresql.core.PGStream.flush(PGStream.java:532)at org.postgresql.core.v3.ProtocolConnectionImpl.close(ProtocolConnectionImpl.java:131)at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:215)at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354)at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:258)at org.apache.jsp.Test_jsp._jspService(Test_jsp.java:104)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:831)at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1196)atjava.lang.Thread.run(Unknown Source) org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:216)at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354)at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:258)at org.apache.jsp.Test_jsp._jspService(Test_jsp.java:104)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:831)at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1196)atjava.lang.Thread.run(Unknown Source) SQLException: SQLState(08006) >From: Oliver Jowett <oliver@opencloud.com> >To: Tom Lane <tgl@sss.pgh.pa.us> >CC: Dave Cramer <pg@fastcrypt.com>, JEAN-PIERRE PELLETIER ><pelletier_32@sympatico.ca>, List <pgsql-jdbc@postgresql.org>, >PostgreSQL-development <pgsql-hackers@postgresql.org> >Subject: Re: [HACKERS] [JDBC] server process (PID 1188) exited with exit >code >Date: Wed, 25 Oct 2006 03:26:07 +0000 > >Tom Lane wrote: > >> NULL, /* let the backend deduce param type */ > >I think the JDBC driver will be passing the int4 OID for the param type in >this case. > >Best thing is probably for the OP to run with loglevel=2 and see exactly >what's being sent, though. > >-O > >---------------------------(end of broadcast)--------------------------- >TIP 1: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly
"JEAN-PIERRE PELLETIER" <pelletier_32@sympatico.ca> writes: > 08:47:19.296 (1) FE=> Parse(stmt=null,query="select $1 from (select * from > pg_database) t",oids={23}) Actually, now that I look closely, this command is almost certainly triggering this beta1 bug: http://archives.postgresql.org/pgsql-committers/2006-10/msg00107.php Please try beta2 and see if it isn't fixed. regards, tom lane
Yes, the problem is gone in 8.2 beta2. Thanks all for an outstanding product and support, Jean-Pierre Pelletier >From: Tom Lane <tgl@sss.pgh.pa.us> >To: "JEAN-PIERRE PELLETIER" <pelletier_32@sympatico.ca> >CC: pgsql-hackers@postgresql.org, pg@fastcrypt.com, oliver@opencloud.com >Subject: Re: [HACKERS] [JDBC] server process (PID 1188) exited with exit >code Date: Wed, 25 Oct 2006 10:15:03 -0400 > >"JEAN-PIERRE PELLETIER" <pelletier_32@sympatico.ca> writes: > > 08:47:19.296 (1) FE=> Parse(stmt=null,query="select $1 from (select * >from > > pg_database) t",oids={23}) > >Actually, now that I look closely, this command is almost certainly >triggering this beta1 bug: >http://archives.postgresql.org/pgsql-committers/2006-10/msg00107.php > >Please try beta2 and see if it isn't fixed. > > regards, tom lane
Re: [JDBC] server process (PID 1188) exited with exit code -1073741819, 8.2 beta1
From
"Thomas H."
Date:
>> This is a server bug, I will post to hackers for you, > > Please provide a complete test case. I tried to reproduce the failure > in libpq, with tom, i've just noticed this is the exact same error message & errorcode as i get when updating a table that contains a tsearch2 vector column 2006-10-25 20:08:42 [3420] LOG: 00000: server process (PID 2332) exited with exit code -1073741819 2006-10-25 20:08:42 [3420] LOCATION: LogChildExit, postmaster.c:2385 (test case provided, see "Re: [BUGS] 8.2beta1 (w32): server process crash (tsvector)" from oct. 17th) maybe dave is also using tsearch2 in the involved tables, or is this a general error code? regards, thomas
Re: [JDBC] server process (PID 1188) exited with exit code -1073741819, 8.2 beta1
From
Tom Lane
Date:
Dave Cramer <pg@fastcrypt.com> writes: > This is a server bug, I will post to hackers for you, it has little > to do with JDBC, however the ? can't be a column in a prepared statement I cannot reproduce any problem using what I think is equivalent in libpq: /* Here is our out-of-line parameter value */ paramValues[0] = "1"; res = PQexecParams(conn, "select $1 from (select * from pg_database) t", 1, /* one param */ NULL, /* let the backend deduce param type */ paramValues, NULL, /* don't need param lengths since text */ NULL, /* default to all text params */ 0); /* ask for text results */ This comes back with ERROR: could not determine data type of parameter $1 but no crash. Is the JDBC driver doing anything interesting as a result of the pstmt.setObject(1, 1); and if so what? regards, tom lane
Tom Lane wrote: > Dave Cramer <pg@fastcrypt.com> writes: > >>This is a server bug, I will post to hackers for you, it has little >>to do with JDBC, however the ? can't be a column in a prepared statement > > I cannot reproduce any problem using what I think is equivalent in libpq: I thought we got this one sorted out already, it was a server bug fixed in beta2? At the time you said: > "JEAN-PIERRE PELLETIER" <pelletier_32@sympatico.ca> writes: > >>> 08:47:19.296 (1) FE=> Parse(stmt=null,query="select $1 from (select * from >>> pg_database) t",oids={23}) > > > Actually, now that I look closely, this command is almost certainly > triggering this beta1 bug: > http://archives.postgresql.org/pgsql-committers/2006-10/msg00107.php > > Please try beta2 and see if it isn't fixed. > > regards, tom lane (and the problem went away in beta2) -O