Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 52765 invoked from network); 18 Dec 2009 10:43:04 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 18 Dec 2009 10:43:04 -0000 Received: (qmail 54372 invoked by uid 500); 18 Dec 2009 10:43:04 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 54308 invoked by uid 500); 18 Dec 2009 10:43:04 -0000 Mailing-List: contact java-commits-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-commits@lucene.apache.org Received: (qmail 54299 invoked by uid 99); 18 Dec 2009 10:43:04 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Dec 2009 10:43:04 +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.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Dec 2009 10:42:51 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 3B4CD2388996; Fri, 18 Dec 2009 10:42:30 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r892216 - in /lucene/java/trunk: ./ src/test/org/apache/lucene/ src/test/org/apache/lucene/index/ Date: Fri, 18 Dec 2009 10:42:29 -0000 To: java-commits@lucene.apache.org From: uschindler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091218104230.3B4CD2388996@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: uschindler Date: Fri Dec 18 10:42:29 2009 New Revision: 892216 URL: http://svn.apache.org/viewvc?rev=892216&view=rev Log: LUCENE-2170: Fix thread starvation problems Modified: lucene/java/trunk/CHANGES.txt lucene/java/trunk/common-build.xml lucene/java/trunk/src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java lucene/java/trunk/src/test/org/apache/lucene/index/TestAtomicUpdate.java lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterReader.java lucene/java/trunk/src/test/org/apache/lucene/index/TestStressIndexing.java lucene/java/trunk/src/test/org/apache/lucene/index/TestTransactions.java Modified: lucene/java/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/CHANGES.txt (original) +++ lucene/java/trunk/CHANGES.txt Fri Dec 18 10:42:29 2009 @@ -136,6 +136,8 @@ * LUCENE-2155: Fix time and zone dependent localization test failures in queryparser tests. (Uwe Schindler, Chris Male, Robert Muir) +* LUCENE-2170: Fix thread starvation problems. (Uwe Schindler) + ======================= Release 3.0.0 2009-11-25 ======================= Changes in backwards compatibility policy Modified: lucene/java/trunk/common-build.xml URL: http://svn.apache.org/viewvc/lucene/java/trunk/common-build.xml?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/common-build.xml (original) +++ lucene/java/trunk/common-build.xml Fri Dec 18 10:42:29 2009 @@ -42,7 +42,7 @@ - + Modified: lucene/java/trunk/src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/TestSnapshotDeletionPolicy.java Fri Dec 18 10:42:29 2009 @@ -121,7 +121,7 @@ public void run() { Document doc = new Document(); doc.add(new Field("content", "aaa", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); - while(System.currentTimeMillis() < stopTime) { + do { for(int i=0;i<27;i++) { try { writer.addDocument(doc); @@ -142,7 +142,7 @@ } catch (InterruptedException ie) { throw new ThreadInterruptedException(ie); } - } + } while(System.currentTimeMillis() < stopTime); } }; @@ -150,12 +150,10 @@ // While the above indexing thread is running, take many // backups: - while(System.currentTimeMillis() < stopTime) { + do { backupIndex(dir, dp); Thread.sleep(20); - if (!t.isAlive()) - break; - } + } while(t.isAlive()); t.join(); Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestAtomicUpdate.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestAtomicUpdate.java?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestAtomicUpdate.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestAtomicUpdate.java Fri Dec 18 10:42:29 2009 @@ -45,7 +45,7 @@ } private static abstract class TimedThread extends Thread { - boolean failed; + volatile boolean failed; int count; private static float RUN_TIME_SEC = 0.5f; private TimedThread[] allThreads; @@ -63,10 +63,11 @@ count = 0; try { - while(System.currentTimeMillis() < stopTime && !anyErrors()) { + do { + if (anyErrors()) break; doWork(); count++; - } + } while(System.currentTimeMillis() < stopTime); } catch (Throwable e) { System.out.println(Thread.currentThread().getName() + ": exc"); e.printStackTrace(System.out); Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java Fri Dec 18 10:42:29 2009 @@ -2206,7 +2206,7 @@ int fullCount = 0; final long stopTime = System.currentTimeMillis() + 200; - while(System.currentTimeMillis() < stopTime) { + do { try { writer.updateDocument(new Term("id", ""+(idUpto++)), doc); addCount++; @@ -2240,7 +2240,7 @@ } break; } - } + } while(System.currentTimeMillis() < stopTime); } } @@ -4640,7 +4640,8 @@ Field f = new Field("f", "", Field.Store.NO, Field.Index.NOT_ANALYZED); doc.add(f); int count = 0; - while(System.currentTimeMillis() < endTime && !failed.get()) { + do { + if (failed.get()) break; for(int j=0;j<10;j++) { final String s = finalI + "_" + String.valueOf(count++); f.setValue(s); @@ -4652,7 +4653,7 @@ r = r2; assertEquals("term=f:" + s, 1, r.docFreq(new Term("f", s))); } - } + } while(System.currentTimeMillis() < endTime); r.close(); } catch (Throwable t) { failed.set(true); Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Fri Dec 18 10:42:29 2009 @@ -65,7 +65,7 @@ final long stopTime = System.currentTimeMillis() + 500; - while(System.currentTimeMillis() < stopTime) { + do { doFail.set(this); final String id = ""+r.nextInt(50); idField.setValue(id); @@ -105,7 +105,7 @@ failure = t; break; } - } + } while(System.currentTimeMillis() < stopTime); } } Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterReader.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterReader.java Fri Dec 18 10:42:29 2009 @@ -730,14 +730,14 @@ threads[i] = new Thread() { @Override public void run() { - while(System.currentTimeMillis() < endTime) { + do { try { writer.addIndexesNoOptimize(dirs); } catch (Throwable t) { excs.add(t); throw new RuntimeException(t); } - } + } while(System.currentTimeMillis() < endTime); } }; threads[i].setDaemon(true); @@ -760,6 +760,15 @@ for(int i=0;i= lastCount); assertEquals(0, excs.size()); writer.close(); @@ -796,7 +805,7 @@ public void run() { int count = 0; final Random r = new Random(); - while(System.currentTimeMillis() < endTime) { + do { try { for(int i=0;i<10;i++) { writer.addDocument(createDocument(10*count+i, "test", 4)); @@ -811,7 +820,7 @@ excs.add(t); throw new RuntimeException(t); } - } + } while(System.currentTimeMillis() < endTime); } }; threads[i].setDaemon(true); @@ -832,7 +841,16 @@ for(int i=0;i 0); + // at least search once + IndexReader r2 = r.reopen(); + if (r2 != r) { + r.close(); + r = r2; + } + Query q = new TermQuery(new Term("indexname", "test")); + sum += new IndexSearcher(r).search(q, 10).totalHits; + + assertTrue("no documents found at all", sum > 0); assertEquals(0, excs.size()); writer.close(); Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestStressIndexing.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestStressIndexing.java?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestStressIndexing.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestStressIndexing.java Fri Dec 18 10:42:29 2009 @@ -30,7 +30,7 @@ private Random RANDOM; private static abstract class TimedThread extends Thread { - boolean failed; + volatile boolean failed; int count; private static int RUN_TIME_SEC = 1; private TimedThread[] allThreads; @@ -48,10 +48,11 @@ count = 0; try { - while(System.currentTimeMillis() < stopTime && !anyErrors()) { + do { + if (anyErrors()) break; doWork(); count++; - } + } while(System.currentTimeMillis() < stopTime); } catch (Throwable e) { System.out.println(Thread.currentThread() + ": exc"); e.printStackTrace(System.out); Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestTransactions.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestTransactions.java?rev=892216&r1=892215&r2=892216&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestTransactions.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestTransactions.java Fri Dec 18 10:42:29 2009 @@ -38,7 +38,7 @@ } private static abstract class TimedThread extends Thread { - boolean failed; + volatile boolean failed; private static float RUN_TIME_SEC = 0.5f; private TimedThread[] allThreads; @@ -53,8 +53,10 @@ final long stopTime = System.currentTimeMillis() + (long) (1000*RUN_TIME_SEC); try { - while(System.currentTimeMillis() < stopTime && !anyErrors()) + do { + if (anyErrors()) break; doWork(); + } while (System.currentTimeMillis() < stopTime); } catch (Throwable e) { System.out.println(Thread.currentThread() + ": exc"); e.printStackTrace(System.out);