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:
   
![JSONFlattenerMaker](https://user-images.githubusercontent.com/10127188/69789139-e7ff8400-11fa-11ea-82e8-c8f1120594da.jpg)
   charsetFix:
   
![charsetFix](https://user-images.githubusercontent.com/10127188/69789163-f77ecd00-11fa-11ea-9151-e6281e0f15f4.jpg)
   
   
---------------------------------------------------------------------------------------------
   ###  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]

Reply via email to