yongmeibian opened a new issue #8967: JSONFlattenerMaker.charsetFix() throws java.lang.IllegalStateException when it is accessed concurrently URL: https://github.com/apache/incubator-druid/issues/8967 JSONFlattenerMaker.charsetFix() throws java.lang.IllegalStateException when it is accessed concurrently. ### Affected Version 0.14.2 and all other versions above 0.14.2 ### Description For performance reasons, I need to process multiple rows concurrently in SeekableStreamIndexTaskRunner.runInternal(). But,the JSONFlattenerMaker class has “CharsetEncoder enc = StandardCharsets.UTF_8.newEncoder()" as its memeber variable. And CharsetEncoder.canEncode(String s) can not be accessed concunrrently which makes JSONFlattenerMaker.charsetFix() can not be accessed concurrently either. -------------------------------------------------------------------------------------------- JSONFlattenerMaker:  charsetFix:  --------------------------------------------------------------------------------------------- ### The stack traces encountered: java.lang.IllegalStateException: Current state = CODING_END, new state = CODING at java.nio.charset.CharsetEncoder.throwIllegalStateException(CharsetEncoder.java:992) at java.nio.charset.CharsetEncoder.canEncode(CharsetEncoder.java:904) at java.nio.charset.CharsetEncoder.canEncode(CharsetEncoder.java:985) at org.apache.druid.java.util.common.parsers.JSONFlattenerMaker.charsetFix(JSONFlattenerMaker.java:144) at org.apache.druid.java.util.common.parsers.JSONFlattenerMaker.valueConversionFunction(JSONFlattenerMaker.java:116) at org.apache.druid.java.util.common.parsers.JSONFlattenerMaker.getRootField(JSONFlattenerMaker.java:71) at org.apache.druid.java.util.common.parsers.JSONFlattenerMaker.getRootField(JSONFlattenerMaker.java:44) at org.apache.druid.java.util.common.parsers.ObjectFlatteners.lambda$create$0(ObjectFlatteners.java:54) at org.apache.druid.java.util.common.parsers.ObjectFlatteners$1$1.get(ObjectFlatteners.java:112) at org.apache.druid.data.input.MapBasedRow.getRaw(MapBasedRow.java:85) at org.apache.druid.segment.incremental.IncrementalIndex.toIncrementalIndexRow(IncrementalIndex.java:675) at org.apache.druid.segment.incremental.IncrementalIndex.add(IncrementalIndex.java:609) at org.apache.druid.segment.realtime.plumber.Sink.add(Sink.java:179) at org.apache.druid.segment.realtime.appenderator.AppenderatorImpl.add(AppenderatorImpl.java:253) at org.apache.druid.segment.realtime.appenderator.BaseAppenderatorDriver.append(BaseAppenderatorDriver.java:403) at org.apache.druid.segment.realtime.appenderator.StreamAppenderatorDriver.add(StreamAppenderatorDriver.java:180) at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.runInternal(SeekableStreamIndexTaskRunner.java:602) at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTaskRunner.run(SeekableStreamIndexTaskRunner.java:251) at org.apache.druid.indexing.seekablestream.SeekableStreamIndexTask.run(SeekableStreamIndexTask.java:146) at org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:419) at org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:391) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) ------------------------------------------------------------------------------------------------
---------------------------------------------------------------- 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: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
