Task #1070 (new)
Opened 16 years ago
Last modified 14 years ago
Indexing race condition with multiple servers.
Reported by: | jamoore | Owned by: | jamoore |
---|---|---|---|
Priority: | major | Milestone: | Unscheduled |
Component: | Search | Version: | 3.0-M1 |
Keywords: | n.a. | Cc: | cxallan |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | n.a. |
Sprint: | n.a. |
Description
When both jboss and blitz are running against the same database, there is a possible race condition on eventlog ids:
13:21:01,181 ERROR [JDBCTransaction] exception calling user Synchronizationorg.hibernate.search.SearchException: Unable to remove from Lucene index: class ome.model.meta.Session#1402 at org.hibernate.search.backend.impl.lucene.LuceneWorker.remove(LuceneWorker.java:109) at org.hibernate.search.backend.impl.lucene.LuceneWorker.performWork(LuceneWorker.java:80) at org.hibernate.search.backend.impl.lucene.LuceneWorker.performWork(LuceneWorker.java:46) at org.hibernate.search.backend.impl.lucene.LuceneBackendQueueProcessor.run(LuceneBackendQueueProcessor.java:98) at org.hibernate.search.backend.impl.BatchedQueueingProcessor.performWorks(BatchedQueueingProcessor.java:149) at org.hibernate.search.backend.impl.PostTransactionWorkQueueSynchronization.afterCompletion(PostTransactionWorkQueueSynchronization.java:50) 20:29 Caused by: org.apache.lucene.index.StaleReaderException: IndexReader out of date and no longer valid for delete, undelete, or setNorm operations at org.apache.lucene.index.IndexReader.acquireWriteLock(IndexReader.java:648) at org.apache.lucene.index.IndexReader.deleteDocument(IndexReader.java:672) at org.hibernate.search.backend.impl.lucene.LuceneWorker.remove(LuceneWorker.java:104) ... 48 more
Though this should not affect the index, it would make sense to put DB-locking in place to prevent the exception.
Change History (4)
comment:1 Changed 16 years ago by jmoore
- Milestone changed from 3.0-Beta3.1 to 3.0-Beta4
comment:2 Changed 15 years ago by jmoore
- Milestone changed from OMERO-Beta4 to OMERO-Beta4.2
- Summary changed from JBoss and blitz indexing race condition to Indexing race condition with multiple servers.
This is still of important post OmeroBlitz migration (#1106). Renaming.
In OmeroClustering, only one server is configured to run indexing. A better solution is needed.
comment:3 Changed 14 years ago by jmoore
- Milestone changed from OMERO-Beta4.2 to Unscheduled
comment:4 Changed 14 years ago by jmoore
- Type changed from Bug to Task
Though this can lead to the need for manual intervention, finding an appropriate solution for this is outside the scope of Beta3.1. The solution for #1059 may also solve this.