lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: svn commit: r1150683 - in /lucene/dev/branches/branch_3x/lucene: CHANGES.txt src/java/org/apache/lucene/index/DocumentsWriter.java
Date Tue, 26 Jul 2011 07:07:33 GMT
We still have a deadlock! I killed the 3.x build few minutes ago.

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de


> -----Original Message-----
> From: mikemccand@apache.org [mailto:mikemccand@apache.org]
> Sent: Monday, July 25, 2011 3:09 PM
> To: commits@lucene.apache.org
> Subject: svn commit: r1150683 - in /lucene/dev/branches/branch_3x/lucene:
> CHANGES.txt src/java/org/apache/lucene/index/DocumentsWriter.java
> 
> Author: mikemccand
> Date: Mon Jul 25 13:09:28 2011
> New Revision: 1150683
> 
> URL: http://svn.apache.org/viewvc?rev=1150683&view=rev
> Log:
> LUCENE-3339: fix deadlock case when multiple threads add/update doc
> blocks
> 
> Modified:
>     lucene/dev/branches/branch_3x/lucene/CHANGES.txt
> 
> lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index
> /DocumentsWriter.java
> 
> Modified: lucene/dev/branches/branch_3x/lucene/CHANGES.txt
> URL:
> http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/CHA
> NGES.txt?rev=1150683&r1=1150682&r2=1150683&view=diff
> ==========================================================
> ====================
> --- lucene/dev/branches/branch_3x/lucene/CHANGES.txt (original)
> +++ lucene/dev/branches/branch_3x/lucene/CHANGES.txt Mon Jul 25
> 13:09:28 2011
> @@ -26,6 +26,10 @@ Bug fixes
>    suppressed exceptions in the original exception, so stack trace
>    will contain them.  (Uwe Schindler)
> 
> +* LUCENE-3339: Fixed deadlock case when multiple threads use the new
> +  block-add (IndexWriter.add/updateDocuments) methods.  (Robert Muir,
> +  Mike McCandless)
> +
>  New Features
> 
>  * LUCENE-3290: Added FieldInvertState.numUniqueTerms
> 
> Modified:
> lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index
> /DocumentsWriter.java
> URL:
> http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/
> java/org/apache/lucene/index/DocumentsWriter.java?rev=1150683&r1=115
> 0682&r2=1150683&view=diff
> ==========================================================
> ====================
> ---
> lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index
> /DocumentsWriter.java (original)
> +++
> lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index
> /DocumentsWriter.java Mon Jul 25 13:09:28 2011
> @@ -843,6 +843,12 @@ final class DocumentsWriter {
>      final int startDocID = docState.docID;
>      int docID = startDocID;
> 
> +    // We must delay pausing until the full doc block is
> +    // added, else we can hit deadlock if more than one
> +    // thread is adding a block and we need to pause when
> +    // both are only part way done:
> +    boolean doPauseWaitQueue = false;
> +
>      //System.out.println(Thread.currentThread().getName() + ": A " +
> docCount);
>      for(Document doc : docs) {
>        docState.doc = doc;
> @@ -873,13 +879,10 @@ final class DocumentsWriter {
>            assert perDoc == null || perDoc.docID == docState.docID;
>            final boolean doPause;
>            if (perDoc != null) {
> -            doPause = waitQueue.add(perDoc);
> +            doPauseWaitQueue |= waitQueue.add(perDoc);
>            } else {
>              skipDocWriter.docID = docState.docID;
> -            doPause = waitQueue.add(skipDocWriter);
> -          }
> -          if (doPause) {
> -            waitForWaitQueue();
> +            doPauseWaitQueue |= waitQueue.add(skipDocWriter);
>            }
>          }
> 
> @@ -937,6 +940,10 @@ final class DocumentsWriter {
>            }
>          }
>        }
> +
> +      if (doPauseWaitQueue) {
> +        waitForWaitQueue();
> +      }
>      }
>      //System.out.println(Thread.currentThread().getName() + ":   A " +
> docCount);
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message