[ https://issues.apache.org/jira/browse/LUCENE-8785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16831635#comment-16831635 ]
Simon Willnauer commented on LUCENE-8785: ----------------------------------------- > But at the point we call clear() haven't we already blocked all indexing > threads? no, it might look like we do that but we don't. We block and lock all threads up that that point in time. If there is another thread coming in after we locked the existent threadstates we just issue a new one. > I also dislike deleteAll() and you're right a user could deleteByQuery using > MatchAllDocsQuery; can we make that close-ish as efficient as deleteAll() is > today? I think we can just do what deleteAll() does today except of not dropping the schema on the floor? > Though indeed that would preserve the schema, while deleteAll() let's you > delete docs, delete schema, all under transaction (the change is not visible > until commit). I want to understand the usecase for this. I can see how somebody wants to drop all docs but basically droping all IW state on the floor is difficult in my eyes. > TestIndexWriterDelete.testDeleteAllNoDeadlock failure > ----------------------------------------------------- > > Key: LUCENE-8785 > URL: https://issues.apache.org/jira/browse/LUCENE-8785 > Project: Lucene - Core > Issue Type: Bug > Components: core/index > Affects Versions: 7.6 > Environment: OpenJDK 1.8.0_202 > Reporter: Michael McCandless > Priority: Minor > > I was running Lucene's core tests on an {{i3.16xlarge}} EC2 instance (64 > cores), and hit this random yet spooky failure: > {noformat} > [junit4] 2> NOTE: reproduce with: ant test > -Dtestcase=TestIndexWriterDelete -Dtests.method=testDeleteAllNoDeadLock > -Dtests.seed=952BE262BA547C1 -Dtests.slow=true -Dtests.badapples=true > -Dtests.locale=ar-YE -Dtests.timezone=Europe/Lisbon -Dtests.as\ > serts=true -Dtests.file.encoding=US-ASCII > [junit4] ERROR 0.16s J3 | TestIndexWriterDelete.testDeleteAllNoDeadLock > <<< > [junit4] > Throwable #1: > com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an > uncaught exception in thread: Thread[id=36, name=Thread-2, state=RUNNABLE, > group=TGRP-TestIndexWriterDelete] > [junit4] > at > __randomizedtesting.SeedInfo.seed([952BE262BA547C1:3A4B5138AB66FD97]:0) > [junit4] > Caused by: java.lang.RuntimeException: > java.lang.IllegalArgumentException: field number 0 is already mapped to field > name "null", not "content" > [junit4] > at > __randomizedtesting.SeedInfo.seed([952BE262BA547C1]:0) > [junit4] > at > org.apache.lucene.index.TestIndexWriterDelete$1.run(TestIndexWriterDelete.java:332) > [junit4] > Caused by: java.lang.IllegalArgumentException: field number > 0 is already mapped to field name "null", not "content" > [junit4] > at > org.apache.lucene.index.FieldInfos$FieldNumbers.verifyConsistent(FieldInfos.java:310) > [junit4] > at > org.apache.lucene.index.FieldInfos$Builder.getOrAdd(FieldInfos.java:415) > [junit4] > at > org.apache.lucene.index.DefaultIndexingChain.getOrAddField(DefaultIndexingChain.java:650) > [junit4] > at > org.apache.lucene.index.DefaultIndexingChain.processField(DefaultIndexingChain.java:428) > [junit4] > at > org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:394) > [junit4] > at > org.apache.lucene.index.DocumentsWriterPerThread.updateDocuments(DocumentsWriterPerThread.java:297) > [junit4] > at > org.apache.lucene.index.DocumentsWriter.updateDocuments(DocumentsWriter.java:450) > [junit4] > at > org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1291) > [junit4] > at > org.apache.lucene.index.IndexWriter.addDocuments(IndexWriter.java:1264) > [junit4] > at > org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:159) > [junit4] > at > org.apache.lucene.index.TestIndexWriterDelete$1.run(TestIndexWriterDelete.java:326){noformat} > It does *not* reproduce unfortunately ... but maybe there is some subtle > thread safety issue in this code ... this is a hairy part of Lucene ;) -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org