ZF-3615: Index cleanup never happens when the index directory is on a GFS mounted volume

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.


© 2006-2018 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.