Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #1070 (new)

Opened 13 years ago

Last modified 11 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.


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)
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 13 years ago by jmoore

  • Milestone changed from 3.0-Beta3.1 to 3.0-Beta4

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.

comment:2 Changed 13 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 12 years ago by jmoore

  • Milestone changed from OMERO-Beta4.2 to Unscheduled

comment:4 Changed 11 years ago by jmoore

  • Type changed from Bug to Task
Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.68216 sec.)

We're Hiring!