Thread: BUG #3032: Commit hung for days
The following bug has been logged online: Bug reference: 3032 Logged by: Craig White Email address: craig@digital-rapids.com PostgreSQL version: 8.1.5 Operating system: Windows XP Description: Commit hung for days Details: I'm not looking for quick answers or a fix, but I wanted to submit this for your information. Setup: Java App using Hibernate 3.2.1, C3P0 connection pool, JDBC to PostgreSQL database. PostgreSQL setup is pretty much the defaults. Occurrence: During some load testing of my application (best characterized as a multi-threaded transaction processing system), I ran into a transaction that appeared to get stuck in its Commit. Using pgAdminIII, the 'Server Status' window shows the Commit Query from 4 days prior. Other connections periodically execute a statement quickly and successfully so there are not 2 statements in deadlock. The commit would have been altering a small number of rows from a couple tables. The commit happened at 2007/02/15 20:02:10, the only odd occurrence in my logs occurred 5 minutes earlier. I'm not sure if it is releated or not. There was a lot of successful activity between 19:57 and 20:02. I'm not yet sure of the cause of this error, but the prior error log is as follows: INFO | jvm 1 | 2007/02/15 19:57:39 | 2007-02-15 19:57:39.949 WARN [T:ServerTranscodeTaskMgr_BG-3][JDBCExceptionReporter] SQL Error: 0, SQLState: XX000 INFO | jvm 1 | 2007/02/15 19:57:39 | 2007-02-15 19:57:39.949 ERROR [T:ServerTranscodeTaskMgr_BG-3][JDBCExceptionReporter] ERROR: could not read block 558 of relation 1663/16403/16599: Invalid argument INFO | jvm 1 | 2007/02/15 19:57:39 | 2007-02-15 19:57:39.949 ERROR [T:ServerTranscodeTaskMgr_BG-3][AbstractFlushingEventListener] Could not synchronize database state with session INFO | jvm 1 | 2007/02/15 19:57:39 | org.hibernate.exception.GenericJDBCException: could not insert collection rows: [ca.digitalrapids.mediamanager.common.model.TranscodeTaskBean.jobs#3fb70ecf- 0e60-4fe3-8991-2cb37b640640] INFO | jvm 1 | 2007/02/15 19:57:39 | at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLSta teConverter.java:103) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java :43) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.persister.collection.AbstractCollectionPersister.insertRows(Ab stractCollectionPersister.java:1394) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.action.CollectionUpdateAction.execute(CollectionUpdateAction.j ava:56) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(Abst ractFlushingEventListener.java:298) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventL istener.java:27) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.persist.hibernate.HibernateUtil.commitTransaction(Hibernate Util.java:329) INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.mediamanager.server.ServerTranscodeTaskMgr.attemptTranscode sWithAlg(ServerTranscodeTaskMgr.java:408) INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.mediamanager.server.ServerTranscodeTaskMgr.checkGroupForWor k(ServerTranscodeTaskMgr.java:226) INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.mediamanager.server.ServerTranscodeTaskMgr$3.run(ServerTran scodeTaskMgr.java:185) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.FutureTask.run(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$ 301(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unk nown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.lang.Thread.run(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | Caused by: org.postgresql.util.PSQLException: ERROR: could not read block 558 of relation 1663/16403/16599: Invalid argument INFO | jvm 1 | 2007/02/15 19:57:40 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorI mpl.java:1512) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.ja va:1297) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.j ava:437) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2St atement.java:353) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2State ment.java:307) INFO | jvm 1 | 2007/02/15 19:57:40 | at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPre paredStatement.java:105) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23) INFO | jvm 1 | 2007/02/15 19:57:40 | at org.hibernate.persister.collection.AbstractCollectionPersister.insertRows(Ab stractCollectionPersister.java:1367) INFO | jvm 1 | 2007/02/15 19:57:40 | ... 21 more INFO | jvm 1 | 2007/02/15 19:57:40 | 02-15 19:57:39 SEVERE HibernateUtil [ServerTranscodeTaskMgr_BG-3]: org.hibernate.exception.GenericJDBCException: could not insert collection rows: [ca.digitalrapids.mediamanager.common.model.TranscodeTaskBean.jobs#3fb70ecf- 0e60-4fe3-8991-2cb37b640640] INFO | jvm 1 | 2007/02/15 19:57:40 | 02-15 19:57:39 INFO ServerMessageCenter [ServerMessageCenter_LBG-1]: Alert is spamming: Job is Running (DRC-1RU-03 S/W) INFO | jvm 1 | 2007/02/15 19:57:40 | 02-15 19:57:39 INFO HibernateUtil [ServerTranscodeTaskMgr_BG-3]: Trying to rollback database transaction of this thread. INFO | jvm 1 | 2007/02/15 19:57:40 | 02-15 19:57:39 INFO HibernateUtil [ServerTranscodeTaskMgr_BG-3]: Database transaction rolled back. INFO | jvm 1 | 2007/02/15 19:57:40 | 02-15 19:57:39 WARNING HibernateUtil [ServerTranscodeTaskMgr_BG-3]: closeSession called, but not open for this thread INFO | jvm 1 | 2007/02/15 19:57:40 | 02-15 19:57:39 WARNING HibernateUtil [ServerTranscodeTaskMgr_BG-3]: closeSession called, but not open for this thread INFO | jvm 1 | 2007/02/15 19:57:40 | java.lang.IllegalStateException: Rollback Transaction called with none in progress INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.persist.hibernate.HibernateUtil.rollbackTransaction(Hiberna teUtil.java:363) INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.mediamanager.server.ServerTranscodeTaskMgr.attemptTranscode sWithAlg(ServerTranscodeTaskMgr.java:415) INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.mediamanager.server.ServerTranscodeTaskMgr.checkGroupForWor k(ServerTranscodeTaskMgr.java:226) INFO | jvm 1 | 2007/02/15 19:57:40 | at ca.digitalrapids.mediamanager.server.ServerTranscodeTaskMgr$3.run(ServerTran scodeTaskMgr.java:185) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.FutureTask.run(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$ 301(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unk nown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) INFO | jvm 1 | 2007/02/15 19:57:40 | at java.lang.Thread.run(Unknown Source)
Craig White wrote: > The following bug has been logged online: > > Bug reference: 3032 > Logged by: Craig White > Email address: craig@digital-rapids.com > PostgreSQL version: 8.1.5 > Operating system: Windows XP > Description: Commit hung for days > Details: > > I'm not looking for quick answers or a fix, but I wanted to submit this for > your information. > > Setup: > > Java App using Hibernate 3.2.1, C3P0 connection pool, JDBC to PostgreSQL > database. > > PostgreSQL setup is pretty much the defaults. > > Occurrence: > > During some load testing of my application (best characterized as a > multi-threaded transaction processing system), I ran into a transaction that > appeared to get stuck in its Commit. Using pgAdminIII, the 'Server Status' > window shows the Commit Query from 4 days prior. Other connections > periodically execute a statement quickly and successfully so there are not 2 > statements in deadlock. > > The commit would have been altering a small number of rows from a couple > tables. > > The commit happened at 2007/02/15 20:02:10, the only odd occurrence in my > logs occurred 5 minutes earlier. I'm not sure if it is releated or not. > There was a lot of successful activity between 19:57 and 20:02. I'm not yet > sure of the cause of this error, but the prior error log is as follows: The interesting thing would be to see the server logs, not the application logs. Specifically, an issue that could look just like this was fixed in 8.1.7, in which case you would see weird error messages about permission denied or such in the *server* logs. None of that would show up in the client logs. So I would suggest upgrading to the latest release in 8.1.x. //Magnus
Thanks for the response Magnus. The server logs do not show anything unusual, other than the occurrence 5 minutes prior. I will still take your advice on the upgrade. 2007-02-15 19:54:13 LOG: autovacuum: processing database "MM" 2007-02-15 19:55:13 LOG: autovacuum: processing database "postgres" 2007-02-15 19:55:37 ERROR: could not read block 558 of relation 1663/16403/16599: Invalid argument 2007-02-15 19:55:37 ERROR: current transaction is aborted, commands ignored until end of transaction block 2007-02-15 19:56:38 LOG: autovacuum: processing database "MM" 2007-02-15 19:57:38 LOG: autovacuum: processing database "postgres" 2007-02-15 19:58:38 LOG: autovacuum: processing database "MM" 2007-02-15 19:59:38 LOG: autovacuum: processing database "postgres" 2007-02-15 20:00:38 LOG: autovacuum: processing database "MM" 2007-02-15 20:01:38 LOG: autovacuum: processing database "postgres" 2007-02-15 20:02:38 LOG: autovacuum: processing database "MM" 2007-02-15 20:03:38 LOG: autovacuum: processing database "postgres" 2007-02-15 20:04:38 LOG: autovacuum: processing database "MM" ..... > -----Original Message----- > From: Magnus Hagander [mailto:magnus@hagander.net] > Sent: Friday, February 23, 2007 3:29 AM > To: Craig White > Cc: pgsql-bugs@postgresql.org > Subject: Re: [BUGS] BUG #3032: Commit hung for days >=20 > Craig White wrote: > > The following bug has been logged online: > > > > Bug reference: 3032 > > Logged by: Craig White > > Email address: craig@digital-rapids.com > > PostgreSQL version: 8.1.5 > > Operating system: Windows XP > > Description: Commit hung for days > > Details: > > > > I'm not looking for quick answers or a fix, but I wanted to submit this > for > > your information. > > > > Setup: > > > > Java App using Hibernate 3.2.1, C3P0 connection pool, JDBC to PostgreSQL > > database. > > > > PostgreSQL setup is pretty much the defaults. > > > > Occurrence: > > > > During some load testing of my application (best characterized as a > > multi-threaded transaction processing system), I ran into a transaction > that > > appeared to get stuck in its Commit. Using pgAdminIII, the 'Server > Status' > > window shows the Commit Query from 4 days prior. Other connections > > periodically execute a statement quickly and successfully so there are > not 2 > > statements in deadlock. > > > > The commit would have been altering a small number of rows from a couple > > tables. > > > > The commit happened at 2007/02/15 20:02:10, the only odd occurrence in > my > > logs occurred 5 minutes earlier. I'm not sure if it is releated or not. > > There was a lot of successful activity between 19:57 and 20:02. I'm not > yet > > sure of the cause of this error, but the prior error log is as follows: >=20 > The interesting thing would be to see the server logs, not the > application logs. Specifically, an issue that could look just like this > was fixed in 8.1.7, in which case you would see weird error messages > about permission denied or such in the *server* logs. None of that would > show up in the client logs. >=20 > So I would suggest upgrading to the latest release in 8.1.x. >=20 > //Magnus