lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Heidrich (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-1555) Deadlock while optimize
Date Wed, 11 Mar 2009 12:27:50 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-1555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12680861#action_12680861
] 

Stefan Heidrich commented on LUCENE-1555:
-----------------------------------------

First of all, I could solve the problem by using IndexWriter.close(true) instead of IndexWriter.close().

The indexer thread will index new data periodically. But if the indexer threat is started,
it will perform an optimize as well. So it could happen that

((ConcurrentMergeScheduler)indexWriter.getMergeScheduler()).sync();
indexWriter.close(true);

and 

indexWriter = new IndexWriter(indexDirectory, analyser , false, MaxFieldLength.UNLIMITED);
indexWriter.optimize(MAX_MERGED_FILES);
((ConcurrentMergeScheduler)indexWriter.getMergeScheduler()).sync();
indexWriter.close(true);

will be executed one after another. With close() this could result in a lock.
I've only changed the maxFieldLength of the writer to 50000.



> Deadlock while optimize
> -----------------------
>
>                 Key: LUCENE-1555
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1555
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.4
>         Environment: ubuntu 8.04, java 1.6 update 07, Lucene 2.4.0
>            Reporter: Stefan Heidrich
>            Assignee: Michael McCandless
>
> Sometimes after starting the thread with the indexer, the thread will hang in the following
threads.
> Thread [Lucene Merge Thread #0] (Ausgesetzt)	
> 	IndexWriter.commitMerge(MergePolicy$OneMerge, SegmentMerger, int) Line: 3751	
> 	IndexWriter.mergeMiddle(MergePolicy$OneMerge) Line: 4240	
> 	IndexWriter.merge(MergePolicy$OneMerge) Line: 3877	
> 	ConcurrentMergeScheduler.doMerge(MergePolicy$OneMerge) Line: 205	
> 	ConcurrentMergeScheduler$MergeThread.run() Line: 260	
> Thread [Indexer] (Ausgesetzt)	
> 	Object.wait(long) Line: not available [native Methode]	
> 	IndexWriter.doWait() Line: 4491	
> 	IndexWriter.optimize(int, boolean) Line: 2268	
> 	IndexWriter.optimize(boolean) Line: 2203	
> 	IndexWriter.optimize() Line: 2183	
> 	Indexer.run() Line: 263	
> If you need more informations, please let me know.

-- 
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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message