
|
If you were logged in you would be able to see more operations.
|
|
|
|
Environment:
|
2.0.0 trunk nightly build #57
|
|
|
I'm attempting to use Lucene's concurrent merge scheduler via:
<prop key="compass.engine.merge.scheduler.type">concurrent</prop>
I didn't set the threadPriority property. In Compass's ConcurrentMergeSchedulerProvider:
mergeScheduler.setMergeThreadPriority(settings.getSettingAsInt(LuceneEnvironment.MergeScheduler.Concurrent.THREAD_PRIORITY, -1));
Causes an IllegalArgumentException without the threadPriority set because -1 is an invalid priority. If this is intentional, it should be doc'ed that to use concurrent, you must set the thread priority.
Caused by: java.lang.IllegalArgumentException: priority must be in range 1 .. 10 inclusive
at org.apache.lucene.index.ConcurrentMergeScheduler.setMergeThreadPriority(ConcurrentMergeScheduler.java:82)
at org.compass.core.lucene.engine.merge.scheduler.ConcurrentMergeSchedulerProvider.create(ConcurrentMergeSchedulerProvider.java:41)
at org.compass.core.lucene.engine.merge.scheduler.MergeSchedulerFactory.create(MergeSchedulerFactory.java:34)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:445)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:425)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:421)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:409)
at org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransaction.openIndexWriterIfNeeded(ReadCommittedTransaction.java:319)
at org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransaction.doDelete(ReadCommittedTransaction.java:264)
at org.compass.core.lucene.engine.transaction.AbstractTransaction.doUpdate(AbstractTransaction.java:135)
at org.compass.core.lucene.engine.transaction.AbstractTransaction.update(AbstractTransaction.java:131)
at org.compass.core.lucene.engine.LuceneSearchEngine.createOrUpdate(LuceneSearchEngine.java:270)
at org.compass.core.lucene.engine.LuceneSearchEngine.save(LuceneSearchEngine.java:248)
at org.compass.core.impl.DefaultCompassSession.save(DefaultCompassSession.java:348)
|
|
Description
|
I'm attempting to use Lucene's concurrent merge scheduler via:
<prop key="compass.engine.merge.scheduler.type">concurrent</prop>
I didn't set the threadPriority property. In Compass's ConcurrentMergeSchedulerProvider:
mergeScheduler.setMergeThreadPriority(settings.getSettingAsInt(LuceneEnvironment.MergeScheduler.Concurrent.THREAD_PRIORITY, -1));
Causes an IllegalArgumentException without the threadPriority set because -1 is an invalid priority. If this is intentional, it should be doc'ed that to use concurrent, you must set the thread priority.
Caused by: java.lang.IllegalArgumentException: priority must be in range 1 .. 10 inclusive
at org.apache.lucene.index.ConcurrentMergeScheduler.setMergeThreadPriority(ConcurrentMergeScheduler.java:82)
at org.compass.core.lucene.engine.merge.scheduler.ConcurrentMergeSchedulerProvider.create(ConcurrentMergeSchedulerProvider.java:41)
at org.compass.core.lucene.engine.merge.scheduler.MergeSchedulerFactory.create(MergeSchedulerFactory.java:34)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:445)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:425)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:421)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.openIndexWriter(DefaultLuceneSearchEngineIndexManager.java:409)
at org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransaction.openIndexWriterIfNeeded(ReadCommittedTransaction.java:319)
at org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransaction.doDelete(ReadCommittedTransaction.java:264)
at org.compass.core.lucene.engine.transaction.AbstractTransaction.doUpdate(AbstractTransaction.java:135)
at org.compass.core.lucene.engine.transaction.AbstractTransaction.update(AbstractTransaction.java:131)
at org.compass.core.lucene.engine.LuceneSearchEngine.createOrUpdate(LuceneSearchEngine.java:270)
at org.compass.core.lucene.engine.LuceneSearchEngine.save(LuceneSearchEngine.java:248)
at org.compass.core.impl.DefaultCompassSession.save(DefaultCompassSession.java:348)
|
Show » |
|
Do you think that this might relate to the previous bug you opened? I thought about it as well, ping if this solves your other bug, so I can see if something is wrong with the executor merger. In Lucene, it is a shame to use the concurrent one since it creates a thread which is an expensive operation.