[ https://issues.apache.org/jira/browse/LUCENE-9467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17179100#comment-17179100 ]
ASF subversion and git services commented on LUCENE-9467: --------------------------------------------------------- Commit d6da2bf8299edc5df35e9735546659dd037352fc in lucene-solr's branch refs/heads/branch_8x from Simon Willnauer [ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=d6da2bf ] LUCENE-9467: Fix NRTCachingDirectory to use Directory#fileLength to check if a file already exists instead of opening an IndexInput on the file which might throw a AccessDeniedException in some Directory implementations. > TestOfflineSorter fails with combination of NRTCaching and > ByteBuffersDirectory > ------------------------------------------------------------------------------- > > Key: LUCENE-9467 > URL: https://issues.apache.org/jira/browse/LUCENE-9467 > Project: Lucene - Core > Issue Type: Bug > Affects Versions: 8.7, 8.6.1 > Reporter: Simon Willnauer > Priority: Major > > TestOfflineSorter#testThreadSafety fails on 8.x since NRTCachingDirectory > uses the delegates openInput method to slowly check if the file exists. This > is not present anymore on main line. The problem is that ByteBuffersDirectory > fires an AccessDeniedException when the file is not fully written yet. > {noformat} > 00:27:31 [junit4] Suite: org.apache.lucene.util.TestOfflineSorter > 00:27:31 [junit4] 2> KMN 14, 2020 6:27:30 AM > com.carrotsearch.randomizedtesting.RandomizedRunner$QueueUncaughtExceptionsHandler > uncaughtException > 00:27:31 [junit4] 2> WARNING: Uncaught exception in thread: > Thread[Thread-7318,5,TGRP-TestOfflineSorter] > 00:27:31 [junit4] 2> java.lang.RuntimeException: > java.nio.file.AccessDeniedException: Can't open a file still open for > writing: unsorted_tmp_6.tmp > 00:27:31 [junit4] 2> at > __randomizedtesting.SeedInfo.seed([B1129484013118F7]:0) > 00:27:31 [junit4] 2> at > org.apache.lucene.util.TestOfflineSorter$2.run(TestOfflineSorter.java:272) > 00:27:31 [junit4] 2> Caused by: java.nio.file.AccessDeniedException: > Can't open a file still open for writing: unsorted_tmp_6.tmp > 00:27:31 [junit4] 2> at > org.apache.lucene.store.ByteBuffersDirectory$FileEntry.openInput(ByteBuffersDirectory.java:251) > 00:27:31 [junit4] 2> at > org.apache.lucene.store.ByteBuffersDirectory.openInput(ByteBuffersDirectory.java:218) > 00:27:31 [junit4] 2> at > org.apache.lucene.store.FileSwitchDirectory.openInput(FileSwitchDirectory.java:233) > 00:27:31 [junit4] 2> at > org.apache.lucene.store.NRTCachingDirectory.slowFileExists(NRTCachingDirectory.java:280) > 00:27:31 [junit4] 2> at > org.apache.lucene.store.NRTCachingDirectory.createTempOutput(NRTCachingDirectory.java:254) > 00:27:31 [junit4] 2> at > org.apache.lucene.store.MockDirectoryWrapper.createTempOutput(MockDirectoryWrapper.java:707) > 00:27:31 [junit4] 2> at > org.apache.lucene.util.TestOfflineSorter.checkSort(TestOfflineSorter.java:184) > 00:27:31 [junit4] 2> at > org.apache.lucene.util.TestOfflineSorter.access$100(TestOfflineSorter.java:48) > 00:27:31 [junit4] 2> at > org.apache.lucene.util.TestOfflineSorter$2.run(TestOfflineSorter.java:268) > 00:27:31 [junit4] 2> > 00:27:31 [junit4] 2> NOTE: reproduce with: ant test > -Dtestcase=TestOfflineSorter -Dtests.method=testThreadSafety > -Dtests.seed=B1129484013118F7 -Dtests.nightly=true -Dtests.slow=true > -Dtests.badapples=true -Dtests.locale=cgg-UG -Dtests.timezone=Asia/Dacca > -Dtests.asserts=true -Dtests.file.encoding=UTF8 > 00:27:31 [junit4] ERROR 0.04s J3 | TestOfflineSorter.testThreadSafety <<< > 00:27:31 [junit4] > Throwable #1: java.lang.AssertionError > 00:27:31 [junit4] > at > org.apache.lucene.util.TestOfflineSorter.testThreadSafety(TestOfflineSorter.java:283) > 00:27:31 [junit4] > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > 00:27:31 [junit4] > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > 00:27:31 [junit4] > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > 00:27:31 [junit4] > at > java.base/java.lang.reflect.Method.invoke(Method.java:566) > 00:27:31 [junit4] > at > java.base/java.lang.Thread.run(Thread.java:834)Throwable #2: > com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an > uncaught exception in thread: Thread[id=7993, name=Thread-7318, > state=RUNNABLE, group=TGRP-TestOfflineSorter] > 00:27:31 [junit4] > Caused by: java.lang.RuntimeException: > java.nio.file.AccessDeniedException: Can't open a file still open for > writing: unsorted_tmp_6.tmp > 00:27:31 [junit4] > at > __randomizedtesting.SeedInfo.seed([B1129484013118F7]:0) > 00:27:31 [junit4] > at > org.apache.lucene.util.TestOfflineSorter$2.run(TestOfflineSorter.java:272) > 00:27:31 [junit4] > Caused by: java.nio.file.AccessDeniedException: > Can't open a file still open for writing: unsorted_tmp_6.tmp > 00:27:31 [junit4] > at > org.apache.lucene.store.ByteBuffersDirectory$FileEntry.openInput(ByteBuffersDirectory.java:251) > 00:27:31 [junit4] > at > org.apache.lucene.store.ByteBuffersDirectory.openInput(ByteBuffersDirectory.java:218) > 00:27:31 [junit4] > at > org.apache.lucene.store.FileSwitchDirectory.openInput(FileSwitchDirectory.java:233) > 00:27:31 [junit4] > at > org.apache.lucene.store.NRTCachingDirectory.slowFileExists(NRTCachingDirectory.java:280) > 00:27:31 [junit4] > at > org.apache.lucene.store.NRTCachingDirectory.createTempOutput(NRTCachingDirectory.java:254) > 00:27:31 [junit4] > at > org.apache.lucene.store.MockDirectoryWrapper.createTempOutput(MockDirectoryWrapper.java:707) > 00:27:31 [junit4] > at > org.apache.lucene.util.TestOfflineSorter.checkSort(TestOfflineSorter.java:184) > 00:27:31 [junit4] > at > org.apache.lucene.util.TestOfflineSorter.access$100(TestOfflineSorter.java:48) > 00:27:31 [junit4] > at > org.apache.lucene.util.TestOfflineSorter$2.run(TestOfflineSorter.java:268) > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org