Oscar Torreno created ORC-1787:
----------------------------------
Summary: Failure on readDiskRangesVectored with concurrent record
readers
Key: ORC-1787
URL: https://issues.apache.org/jira/browse/ORC-1787
Project: ORC
Issue Type: Bug
Affects Versions: 2.0.2
Reporter: Oscar Torreno
We have an application that does RecordReader building & row reading
concurrently. Our code worked fine on ORC v1.9.1 but it started sporadically
failing with ORC 2.0.2. We failed to find any claims about thread-safety
guaranties for record reader creation. Are we supposed to construct
RecordReaders in parallel for a single file and it's an implementation bug? or
it's not supported and RecordReader instances creation should be synchronized?
when we synchronize the creation the problem goes away
The stacktrace:
{code:java}
java.nio.channels.AsynchronousCloseException at
sun.nio.ch.SimpleAsynchronousFileChannelImpl$2.run(SimpleAsynchronousFileChannelImpl.java:326)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.lang.Thread.run(Thread.java:840) [wrapped]
java.util.concurrent.ExecutionException:
java.nio.channels.AsynchronousCloseException at
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) at
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) at
org.apache.orc.impl.RecordReaderUtils.readDiskRangesVectored(RecordReaderUtils.java:595)
[wrapped] java.lang.RuntimeException: java.util.concurrent.ExecutionException:
java.nio.channels.AsynchronousCloseException at
org.apache.orc.impl.RecordReaderUtils.readDiskRangesVectored(RecordReaderUtils.java:597)
at
org.apache.orc.impl.RecordReaderUtils$DefaultDataReader.readFileData(RecordReaderUtils.java:114)
at org.apache.orc.impl.reader.StripePlanner.readData(StripePlanner.java:178)
at org.apache.orc.impl.RecordReaderImpl.readStripe(RecordReaderImpl.java:1314)
at
org.apache.orc.impl.RecordReaderImpl.advanceStripe(RecordReaderImpl.java:1354)
at
org.apache.orc.impl.RecordReaderImpl.advanceToNextRow(RecordReaderImpl.java:1397)
at org.apache.orc.impl.RecordReaderImpl.<init>(RecordReaderImpl.java:367)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)