Just got my week started, was out of town with the family. Here is the
stack trace, coming back to this fresh, I think this is a problem in my
code. I'm not considering the multi-threaded nature of the manifoldcf
when trying to find the next unique number to use. Is there a way to
find out what "i1307564876133" constraint is? I tried to use pgAdmin,
but it didn't show anything in table properties. My code is adding
three indexes, file content hash sum, a unique number, and document URI.
ERROR 2011-07-01 18:49:09,935 [Worker thread '33']
(WorkerThread.java:893) - Exception tossed: ERROR: duplicate key value
violates unique constraint "i1307564876133"
org.apache.manifoldcf.core.interfaces.ManifoldCFException: ERROR:
duplicate key value violates unique constraint "i1307564876133"
at
org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.reinterpretException(DBInterfacePostgreSQL.java:621)
at
org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performModification(DBInterfacePostgreSQL.java:641)
at
org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performInsert(DBInterfacePostgreSQL.java:191)
at
org.apache.manifoldcf.core.database.BaseTable.performInsert(BaseTable.java:76)
at
org.apache.manifoldcf.agents.output.dupfinder.DataManager.insertData(DataManager.java:143)
at
org.apache.manifoldcf.agents.output.dupfinder.DupFinderConnector.addOrReplaceDocument(DupFinderConnector.java:161)
at
org.apache.manifoldcf.agents.incrementalingest.IncrementalIngester.addOrReplaceDocument(IncrementalIngester.java:1433)
at
org.apache.manifoldcf.agents.incrementalingest.IncrementalIngester.performIngestion(IncrementalIngester.java:418)
at
org.apache.manifoldcf.agents.incrementalingest.IncrementalIngester.documentIngest(IncrementalIngester.java:313)
at
org.apache.manifoldcf.crawler.system.WorkerThread$ProcessActivity.ingestDocument(WorkerThread.java:1565)
at
org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector.processDocuments(FileConnector.java:275)
at
org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector.processDocuments(BaseRepositoryConnector.java:423)
at
org.apache.manifoldcf.crawler.system.WorkerThread.run(WorkerThread.java:564)
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value
violates unique constraint "i1307564876133"
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:305)
at
org.apache.manifoldcf.core.database.Database.execute(Database.java:606)
at
org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run(Database.java:421)
On 7/5/2011 2:27 AM, Karl Wright wrote:
Hi Farzad - any luck on getting that stack trace?
Karl
On Sat, Jul 2, 2011 at 1:09 PM, [email protected]<[email protected]> wrote:
The unique key violation is not expected - if you could send along a complete
stack trace that would be good.
The lock clean procedure is to shut down all mcf processes, execute the lock
clean, and start them up again.
Karl
Sent from my Nokia phone
-----Original Message-----
From: Farzad Valad
Sent: 01/07/2011, 12:23 PM
To: [email protected]
Subject: Sync Dir
In a multi process setup, I've noticed if you stop the agent but keep
Tomcat going, you most like will hit a key violation error like the one
below. I remember reading they don't have to be both restarted, but
what if they do? What if I need to issue a LockClean in between?
Error: ERROR: duplicate key value violates unique constraint
"i1307564876133"