Whenever I see really bizarre synchronization-related issues, especially those that involve transactions, I usually suspect thread context issues. That was the only reason I mentioned it. It was also clear that the sync file that contains the current ID number was corrupted. It was full of spaces. I know of no way for Manifold to make that happen at all - only numbers are ever written to that file.
So my recommendation was, clean the locks. If that didn't make the problem go away, suspect the thread context. But since it did go away now all we have to do is figure out how your sync directory got into such a strange state. Karl On Wed, Jun 1, 2011 at 2:55 PM, Farzad Valad <[email protected]> wrote: > So the LockClean command did it. Investing your thought of cross-thread use > of thread contexts. I have removed any use of the thread context for a > while now. I only call super methods to pass the TCs along. I never store > the TCs or pass along any data through them. How do I very that I'm doing > or not doing any cross-thread use of TCs? > > Thanks, > Farzad. > > On 6/1/2011 1:35 PM, Karl Wright wrote: >> >> The transaction error is the result of the id generation error. That >> error is the result of a corrupted file in the sync area. >> >> I suggest you use LockClean to clean your locks, after shutting down >> all processes. Then, restart everything. If you get this error again >> it is because of cross-thread use of thread contexts, no question. >> >> Karl >> >> On Wed, Jun 1, 2011 at 2:31 PM, Farzad Valad<[email protected]> wrote: >>> >>> Any thoughts why I would get an error like this? Also ever since this >>> problem, the agent process is not starting. See the FATAL message. Any >>> thoughts on that one? >>> >>> ERROR 2011-05-31 14:49:20,394 [Worker thread '86'] >>> (WorkerThread.java:923) - >>> Worker thread aborting and restarting due to database connection reset: >>> Database exception: Exception doing query: ERROR: current transaction is >>> aborted, commands ignored until end of transaction block >>> org.apache.manifoldcf.core.interfaces.ManifoldCFException: Database >>> exception: Exception doing query: ERROR: current transaction is aborted, >>> commands ignored until end of transaction block >>> at >>> >>> org.apache.manifoldcf.core.database.Database.executeViaThread(Database.java:461) >>> at >>> >>> org.apache.manifoldcf.core.database.Database.executeUncachedQuery(Database.java:489) >>> at >>> >>> org.apache.manifoldcf.core.database.Database$QueryCacheExecutor.create(Database.java:1131) >>> at >>> >>> org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144) >>> at >>> >>> org.apache.manifoldcf.core.database.Database.executeQuery(Database.java:168) >>> at >>> >>> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performQuery(DBInterfacePostgreSQL.java:809) >>> at >>> >>> org.apache.manifoldcf.core.database.BaseTable.performQuery(BaseTable.java:229) >>> at >>> >>> org.apache.manifoldcf.agents.output.dupfinder.DataManager.insertData(DataManager.java:128) >>> at >>> >>> org.apache.manifoldcf.agents.output.dupfinder.DupFinderConnector.addOrReplaceDocument(DupFinderConnector.java:153) >>> 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: current transaction >>> is >>> aborted, commands ignored until end of transaction block >>> 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.executeQuery(AbstractJdbc2Statement.java:255) >>> at >>> org.apache.manifoldcf.core.database.Database.execute(Database.java:592) >>> at >>> >>> org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run(Database.java:421) >>> >>> >>> FATAL 2011-06-01 13:30:15,276 [Thread-148] (ManifoldCF.java:373) - >>> Startup >>> initialization error tossed: For input string: " " >>> java.lang.NumberFormatException: For input string: " " >>> at java.lang.NumberFormatException.forInputString(Unknown Source) >>> at java.lang.Long.parseLong(Unknown Source) >>> at java.lang.Long.<init>(Unknown Source) >>> at >>> org.apache.manifoldcf.core.interfaces.IDFactory.make(IDFactory.java:71) >>> at >>> >>> org.apache.manifoldcf.core.database.TransactionHandle.<init>(TransactionHandle.java:42) >>> at >>> >>> org.apache.manifoldcf.core.database.Database.beginTransaction(Database.java:204) >>> at >>> >>> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1026) >>> at >>> >>> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:997) >>> at >>> >>> org.apache.manifoldcf.crawler.jobs.JobManager.prepareForStart(JobManager.java:637) >>> at >>> >>> org.apache.manifoldcf.crawler.system.ManifoldCF$InitializationThread.run(ManifoldCF.java:287) >>> > >
