Issue Type: Bug Created: 2008-07-09T06:41:36.000+0000 Last Updated: 2008-09-02T10:39:37.000+0000 Status: Resolved Fix version(s): - 1.6.0 (02/Sep/08)
Reporter: Sid Dunayer (sdunayer) Assignee: Alexander Veremyev (alexander) Tags: - Zend_Search_Lucene
Related issues: - ZF-3777
Attachments: - LockManager.patch
If the index directory is on a GFS mounted volume, Zend_Search_Lucene will never perform an index cleanup even if there are no other processes (local or cluster-wide) using the index. The problem occurs in LockManager.php when it tries to escalate the read-lock from shared to exclusive. While GFS provides cluster-wide flock() support, and hence should be a supported filesystem, the implementation of the lock protocol used by GFS is not fully consistant with that used for EXT3 (local) filesystems. In particular, conditional lock requests to promote the lock from shared to exclusive fail even if we are the only process holding the shared lock. Furthermore, when the lock is demoted, there is an open window of opportunity between the time the exclusive lock is released and the shared lock is re-established. Tests have shown that it;s possible for another task to gaon exclusive control of the lock during that window (although it isn't likely to occur in LockManager).
We have used the attached patch to circumvent the problem
Posted by Sid Dunayer (sdunayer) on 2008-07-09T06:44:02.000+0000
Patch file to circumvent the problem
Posted by Alexander Veremyev (alexander) on 2008-07-23T06:13:20.000+0000
Posted by Wil Sinclair (wil) on 2008-09-02T10:39:37.000+0000
Updating for the 1.6.0 release.
Have you found an issue?
See the Overview section for more details.