[
https://issues.apache.org/jira/browse/LUCENE-3188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steven Rowe updated LUCENE-3188:
--------------------------------
Attachment: LUCENE-3188.patch
Patch against branch_3x.
I converted Ivan's test class into a unit test. Without Ivan's patch, the test
fails, and with the patch, it succeeds.
Here's the test failure I got without Ivan's patch:
{noformat}
org.apache.lucene.index.TestIndexSplitter,testDeleteThenOptimize
NOTE: reproduce with: ant test -Dtestcase=TestIndexSplitter
-Dtestmethod=testDeleteThenOptimize
-Dtests.seed=5250008618328265481:-4070453331991284264
WARNING: test class left thread running: merge thread: _0(3.3):c2/1 into _0
[optimize]
RESOURCE LEAK: test class left 1 thread(s) running
Exception in thread "Lucene Merge Thread #0" NOTE: test params are:
locale=es_BO, timezone=Australia/Tasmania
org.apache.lucene.util.ThreadInterruptedException:
java.lang.InterruptedException: sleep interrupted
at
org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:515)
at
org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:482)
Caused by: java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at
org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:513)
... 1 more
NOTE: all tests run in this JVM:
[TestIndexSplitter]
NOTE: Windows 7 6.1 amd64/Sun Microsystems Inc. 1.5.0_22
(64-bit)/cpus=4,threads=2,free=99874080,total=128057344
java.io.IOException: background merge hit exception: _0(3.3):c2/1 into _0
[optimize]
at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2536)
at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2474)
at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2444)
at
org.apache.lucene.index.TestIndexSplitter.testDeleteThenOptimize(TestIndexSplitter.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:48)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at
org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1268)
at
org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1186)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:94)
at
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:192)
at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
Caused by: java.io.IOException: MockDirectoryWrapper: file "_0.cfs" is still
open: cannot overwrite
at
org.apache.lucene.store.MockDirectoryWrapper.createOutput(MockDirectoryWrapper.java:360)
at
org.apache.lucene.index.CompoundFileWriter.close(CompoundFileWriter.java:167)
at
org.apache.lucene.index.SegmentMerger.createCompoundFile(SegmentMerger.java:137)
at
org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4242)
at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3853)
at
org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:388)
at
org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:456)
{noformat}
> The class from cotrub directory org.apache.lucene.index.IndexSplitter creates
> a non correct index
> -------------------------------------------------------------------------------------------------
>
> Key: LUCENE-3188
> URL: https://issues.apache.org/jira/browse/LUCENE-3188
> Project: Lucene - Java
> Issue Type: Bug
> Components: modules/other
> Affects Versions: 3.0, 3.2
> Environment: Bug is present for all environments.
> I used in this case - Windows Server 2003, Java Hot Spot Virtual Machine.
> Reporter: Ivan Dimitrov Vasilev
> Priority: Minor
> Fix For: 3.0, 3.2
>
> Attachments: IndexSplitter.java, LUCENE-3188.patch,
> LUCENE-3188.patch, TestIndexSplitter.java
>
>
> When using the method IndexSplitter.split(File destDir, String[] segs) from
> the Lucene cotrib directory (contrib/misc/src/java/org/apache/lucene/index)
> it creates an index with segments descriptor file with wrong data. Namely
> wrong is the number representing the name of segment that would be created
> next in this index.
> If some of the segments of the index already has this name this results
> either to impossibility to create new segment or in crating of an corrupted
> segment.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]