Return-Path: Delivered-To: apmail-lucene-dev-archive@www.apache.org Received: (qmail 98117 invoked from network); 5 Oct 2010 15:17:03 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 Oct 2010 15:17:03 -0000 Received: (qmail 21555 invoked by uid 500); 5 Oct 2010 15:17:02 -0000 Delivered-To: apmail-lucene-dev-archive@lucene.apache.org Received: (qmail 21227 invoked by uid 500); 5 Oct 2010 15:17:00 -0000 Mailing-List: contact dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list dev@lucene.apache.org Received: (qmail 21214 invoked by uid 99); 5 Oct 2010 15:16:59 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Oct 2010 15:16:59 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Oct 2010 15:16:57 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o95FGZSg018536 for ; Tue, 5 Oct 2010 15:16:35 GMT Message-ID: <18143187.548521286291795432.JavaMail.jira@thor> Date: Tue, 5 Oct 2010 11:16:35 -0400 (EDT) From: "Michael McCandless (JIRA)" To: dev@lucene.apache.org Subject: [jira] Commented: (LUCENE-2421) Hardening of NativeFSLock In-Reply-To: <24749183.5191272547014166.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/LUCENE-2421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12918019#action_12918019 ] Michael McCandless commented on LUCENE-2421: -------------------------------------------- So, I'm confused on how/why the *test* lock name would get a conflict with multiple JREs running our unit tests. Ie, each JRE runs tests in certain index directories. And the test lock is acquired in the index directory. So, if tests running in different JREs are sharing the same index directory, then more serious problems will ensue. I think it must have only been the test output formatter (LuceneJUnitResultFormatter) that was conflicting on the test lock name. Because this is the only locking usage that'd be sharing the same lock dir across JREs... > Hardening of NativeFSLock > ------------------------- > > Key: LUCENE-2421 > URL: https://issues.apache.org/jira/browse/LUCENE-2421 > Project: Lucene - Java > Issue Type: Improvement > Components: Index > Reporter: Shai Erera > Assignee: Shai Erera > Fix For: 2.9.3, 3.0.2, 3.1, 4.0 > > Attachments: LUCENE-2421-2.patch, LUCENE-2421.patch, LUCENE-2421.patch, LUCENE-2421.patch, LUCENE-2421.patch > > > NativeFSLock create a test lock file which its name might collide w/ another JVM that is running. Very unlikely, but still it happened a couple of times already, since the tests were parallelized. This may result in a false exception thrown from release(), when the lock file's delete() is called and returns false, because the file does not exist (deleted by another JVM already). In addition, release() should give a second attempt to delete() if it fails, since the file may be held temporarily by another process (like AntiVirus) before it fails. The proposed changes are: > 1) Use ManagementFactory.getRuntimeMXBean().getName() as part of the test lock name (should include the process Id) > 2) In release(), if delete() fails, check if the file indeed exists. If it is, let's attempt a re-delete() few ms later. > 3) If (3) still fails, throw an exception. Alternatively, we can attempt a deleteOnExit. > I'll post a patch later today. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org For additional commands, e-mail: dev-help@lucene.apache.org