mikemccand commented on a change in pull request #1274: LUCENE-9164: Prevent IW from closing gracefully if threads are still modifying URL: https://github.com/apache/lucene-solr/pull/1274#discussion_r387129545
########## File path: lucene/core/src/java/org/apache/lucene/index/IndexWriter.java ########## @@ -2275,57 +2265,73 @@ private void rollbackInternalNoCommit() throws IOException { docWriter.close(); // mark it as closed first to prevent subsequent indexing actions/flushes assert !Thread.holdsLock(this) : "IndexWriter lock should never be hold when aborting"; - docWriter.abort(); // don't sync on IW here - docWriter.flushControl.waitForFlush(); // wait for all concurrently running flushes + docWriter.abort(); // don't sync on IW here - this waits for all concurrently running flushes publishFlushedSegments(true); // empty the flush ticket queue otherwise we might not have cleaned up all resources - synchronized (this) { - - if (pendingCommit != null) { - pendingCommit.rollbackCommit(directory); - try { - deleter.decRef(pendingCommit); - } finally { - pendingCommit = null; - notifyAll(); + // we might rollback due to a tragic event which means we potentially already have + // a lease in this case we we can't acquire all leases. In this case rolling back in best effort in terms + // off letting all threads gracefully finish. In such a situation some threads might run into Review comment: s/`off`/`of` ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org