jtuglu1 opened a new issue, #19458:
URL: https://github.com/apache/druid/issues/19458

   ### Affected Version
   
   All Druid versions containing stream supervisor.
   
   ### Description
   
   Druid stream supervisor task runner code has racy logic with the `sequences` 
copy-on-write list which is accessed by both the main thread (thread doing the 
processing) and the publishing thread (committing the segments). These two 
threads can race on the `sequences` list and cause the task to subsequently 
crash with the following exception:
   
   ```
   java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
           at 
java.base/java.util.concurrent.CopyOnWriteArrayList.elementAt(CopyOnWriteArrayList.java:385)
 ~[?:?]
           at 
java.base/java.util.concurrent.CopyOnWriteArrayList.get(CopyOnWriteArrayList.java:398)
 ~[?:?]
           at 
org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.getLastSequenceMetadata(SeekableStreamIndexTaskRunner.java:1302)
 ~[druid-indexing-service-34.0.0.jar:34.0.0]
           at 
org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.runInternal(SeekableStreamIndexTaskRunner.java:631)
 ~[druid-indexing-service-34.0.0.jar:34.0.0]
           at 
org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.run(SeekableStreamIndexTaskRunner.java:295)
 [druid-indexing-service-34.0.0.jar:34.0.0]
           at 
org.apache.druid.indexing.seekablestream.SeekableStreamIndexTask.runTask(SeekableStreamIndexTask.java:159)
 [druid-indexing-service-34.0.0.jar:34.0.0]
           at 
org.apache.druid.indexing.common.task.AbstractTask.run(AbstractTask.java:179) 
[druid-indexing-service-34.0.0.jar:34.0.0]
           at 
org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:478)
 [druid-indexing-service-34.0.0.jar:34.0.0]
           at 
org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:450)
 [druid-indexing-service-34.0.0.jar:34.0.0]
           at 
com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
 [guava-32.1.3-jre.jar:?]
           at 
com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:76)
 [guava-32.1.3-jre.jar:?]
           at 
com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
 [guava-32.1.3-jre.jar:?]
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
 [?:?]
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
 [?:?]
           at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
   ```


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to