Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
ManifoldCF 0.4
-
None
Description
The hang takes place because of this postgresql error:
ERROR 2011-11-28 14:46:23,959 (Worker thread '25') - Worker thread aborting and restarting due to database connection reset: Database exception: Exception doing query: ERROR: could not serialize access due to read/write dependencies among transactions
Detail: Reason code: Canceled on identification as a pivot, during commit attempt.
Hint: The transaction might succeed if retried.
org.apache.manifoldcf.core.interfaces.ManifoldCFException: Database exception: Exception doing query: ERROR: could not serialize access due to read/write dependencies among transactions
Detail: Reason code: Canceled on identification as a pivot, during commit attempt.
Hint: The transaction might succeed if retried.
at org.apache.manifoldcf.core.database.Database.executeViaThread(Database.java:608)
at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.commitCurrentTransaction(DBInterfacePostgreSQL.java:1141)
at org.apache.manifoldcf.core.database.Database.endTransaction(Database.java:321)
at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.endTransaction(DBInterfacePostgreSQL.java:1112)
at org.apache.manifoldcf.crawler.jobs.JobManager.finishDocuments(JobManager.java:4072)
at org.apache.manifoldcf.crawler.system.WorkerThread.run(WorkerThread.java:567)
Caused by: org.postgresql.util.PSQLException: ERROR: could not serialize access due to read/write dependencies among transactions
This is happening during the commit phase of the transaction, at a point where none of the transaction blocks in ManifoldCF know to look for it. It is therefore likely that all transaction blocks throughout ManifoldCF that deal with deadlock will need to be changed.