Return-Path: Delivered-To: apmail-lucene-java-dev-archive@www.apache.org Received: (qmail 34537 invoked from network); 8 Nov 2006 01:57:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 8 Nov 2006 01:57:17 -0000 Received: (qmail 98388 invoked by uid 500); 8 Nov 2006 01:57:25 -0000 Delivered-To: apmail-lucene-java-dev-archive@lucene.apache.org Received: (qmail 98341 invoked by uid 500); 8 Nov 2006 01:57:25 -0000 Mailing-List: contact java-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-dev@lucene.apache.org Received: (qmail 98330 invoked by uid 99); 8 Nov 2006 01:57:25 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Nov 2006 17:57:25 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Nov 2006 17:57:13 -0800 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 14EA77142FC for ; Tue, 7 Nov 2006 17:56:53 -0800 (PST) Message-ID: <27344843.1162951013083.JavaMail.jira@brutus> Date: Tue, 7 Nov 2006 17:56:53 -0800 (PST) From: "Ning Li (JIRA)" To: java-dev@lucene.apache.org Subject: [jira] Commented: (LUCENE-702) Disk full during addIndexes(Directory[]) can corrupt index In-Reply-To: <17744502.1161994156635.JavaMail.root@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ http://issues.apache.org/jira/browse/LUCENE-702?page=comments#action_12448006 ] Ning Li commented on LUCENE-702: -------------------------------- > I think we should try to make all of the addIndexes calls (and more > generally any call to Lucene) "transactional". Agree. A transactional semantics would be better. The approach you described for three addIndexes looks good. addIndexes(IndexReader[]) is transactional but has two commits: one when existing segments are merged at the beginning, the other at the end when all segment/readers are merged. addIndexes(Directory[]) can be fixed to have a similar behaviour: first commit when existing segments are merged at the beginning, then at the end when all old/new segments are merged. addIndexesNoOptimize(Directory[]), on the other hand, does not merge existing segments at the beginning. So when fixed, it will only have one commit at the end which captures all the changes. > Disk full during addIndexes(Directory[]) can corrupt index > ---------------------------------------------------------- > > Key: LUCENE-702 > URL: http://issues.apache.org/jira/browse/LUCENE-702 > Project: Lucene - Java > Issue Type: Bug > Components: Index > Affects Versions: 2.1 > Reporter: Michael McCandless > Assigned To: Michael McCandless > > This is a spinoff of LUCENE-555 > If the disk fills up during this call then the committed segments file can reference segments that were not written. Then the whole index becomes unusable. > Does anyone know of any other cases where disk full could corrupt the index? > I think disk full should worse lose the documents that were "in flight" at the time. It shouldn't corrupt the index. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org For additional commands, e-mail: java-dev-help@lucene.apache.org