mikemccand commented on PR #13124: URL: https://github.com/apache/lucene/pull/13124#issuecomment-2001975632
This looks like a great change! ... Lucene finally catching up to modern concurrency :) I have not looked closely yet. But nightly benchy is upset, prolly related to this, when running `runFacetsBenchmarks.py`. I haven't looked closely yet, and will be offline mostly next couple days (sorry for the hit&run!), but here's the exception is popped out: ``` Exception in thread "main" org.apache.lucene.store.AlreadyClosedException: this IndexWriter is closed at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:913) at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:926) at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:4070) at perf.facets.IndexFacets.main(IndexFacets.java:127) Caused by: java.lang.RuntimeException: Only the merge owner thread can call pauseNanos(). This thread: pool-1-thread-1, owner thread: Thread[#290,Lucene Merge Thread #12,5,main] at org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseNanos(MergePolicy.java:142) at org.apache.lucene.index.MergeRateLimiter.maybePause(MergeRateLimiter.java:147) at org.apache.lucene.index.MergeRateLimiter.pause(MergeRateLimiter.java:92) at org.apache.lucene.store.RateLimitedIndexOutput.checkRate(RateLimitedIndexOutput.java:86) at org.apache.lucene.store.RateLimitedIndexOutput.writeBytes(RateLimitedIndexOutput.java:55) at org.apache.lucene.store.ByteBuffersDataOutput.copyTo(ByteBuffersDataOutput.java:339) at org.apache.lucene.codecs.lucene90.blocktree.Lucene90BlockTreeTermsWriter$TermsWriter.writeBlock(Lucene90BlockTreeTermsWriter.java:1022) at org.apache.lucene.codecs.lucene90.blocktree.Lucene90BlockTreeTermsWriter$TermsWriter.writeBlocks(Lucene90BlockTreeTermsWriter.java:760) at org.apache.lucene.codecs.lucene90.blocktree.Lucene90BlockTreeTermsWriter$TermsWriter.pushTerm(Lucene90BlockTreeTermsWriter.java:1133) at org.apache.lucene.codecs.lucene90.blocktree.Lucene90BlockTreeTermsWriter$TermsWriter.write(Lucene90BlockTreeTermsWriter.java:1089) at org.apache.lucene.codecs.lucene90.blocktree.Lucene90BlockTreeTermsWriter.write(Lucene90BlockTreeTermsWriter.java:399) at org.apache.lucene.codecs.FieldsConsumer.merge(FieldsConsumer.java:95) at org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsWriter.merge(PerFieldPostingsFormat.java:205) at org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:236) at org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:325) at org.apache.lucene.index.SegmentMerger.lambda$merge$0(SegmentMerger.java:147) at org.apache.lucene.search.TaskExecutor$TaskGroup.lambda$createTask$0(TaskExecutor.java:117) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at org.apache.lucene.index.ConcurrentMergeScheduler$CachedExecutor.lambda$execute$0(ConcurrentMergeScheduler.java:978) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) Suppressed: java.lang.RuntimeException: Only the merge owner thread can call pauseNanos(). This thread: pool-1-thread-2, owner thread: Thread[#290,Lucene Merge Thread #12,5,main] at org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseNanos(MergePolicy.java:142) at org.apache.lucene.index.MergeRateLimiter.maybePause(MergeRateLimiter.java:147) at org.apache.lucene.index.MergeRateLimiter.pause(MergeRateLimiter.java:92) at org.apache.lucene.store.RateLimitedIndexOutput.checkRate(RateLimitedIndexOutput.java:86) at org.apache.lucene.store.RateLimitedIndexOutput.writeBytes(RateLimitedIndexOutput.java:55) at org.apache.lucene.store.DataOutput.writeBytes(DataOutput.java:54) at org.apache.lucene.util.packed.DirectWriter.flush(DirectWriter.java:97) at org.apache.lucene.util.packed.DirectWriter.add(DirectWriter.java:83) at org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.writeValuesSingleBlock(Lucene90DocValuesConsumer.java:349) at org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.writeValues(Lucene90DocValuesConsumer.java:328) at org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.doAddSortedNumericField(Lucene90DocValuesConsumer.java:707) at org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.addSortedSetField(Lucene90DocValuesConsumer.java:772) at org.apache.lucene.codecs.DocValuesConsumer.mergeSortedSetField(DocValuesConsumer.java:853) at org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:148) at org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.merge(PerFieldDocValuesFormat.java:154) at org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:205) at org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:325) at org.apache.lucene.index.SegmentMerger.lambda$merge$1(SegmentMerger.java:155) ... 6 more Suppressed: java.lang.RuntimeException: Only the merge owner thread can call pauseNanos(). This thread: pool-1-thread-2, owner thread: Thread[#290,Lucene Merge Thread #12,5,main] at org.apache.lucene.index.MergePolicy$OneMergeProgress.pauseNanos(MergePolicy.java:142) at org.apache.lucene.index.MergeRateLimiter.maybePause(MergeRateLimiter.java:147) at org.apache.lucene.index.MergeRateLimiter.pause(MergeRateLimiter.java:92) at org.apache.lucene.store.RateLimitedIndexOutput.checkRate(RateLimitedIndexOutput.java:86) at org.apache.lucene.store.RateLimitedIndexOutput.writeByte(RateLimitedIndexOutput.java:48) at org.apache.lucene.codecs.CodecUtil.writeBEInt(CodecUtil.java:654) at org.apache.lucene.codecs.CodecUtil.writeFooter(CodecUtil.java:410) at org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.close(Lucene90DocValuesConsumer.java:116) at org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$ConsumerAndSuffix.close(PerFieldDocValuesFormat.java:86) at org.apache.lucene.util.IOUtils.close(IOUtils.java:85) at org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.close(PerFieldDocValuesFormat.java:249) at org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:204) ... 8 more Traceback (most recent call last): File "/l/util.nightly/src/python/nightlyBench.py", line 1957, in <module> run() File "/l/util.nightly/src/python/nightlyBench.py", line 533, in run runFacetsBenchmark.run_benchmark(f'{constants.BASE_DIR}/{NIGHTLY_DIR}', File "/l/util.nightly/src/python/runFacetsBenchmark.py", line 56, in run_benchmark ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org