flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-10175) Fix concurrent access to shared buffer in map state / querable state
Date Tue, 21 Aug 2018 15:01:00 GMT

    [ https://issues.apache.org/jira/browse/FLINK-10175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16587555#comment-16587555
] 

ASF GitHub Bot commented on FLINK-10175:
----------------------------------------

kl0u edited a comment on issue #6583: [FLINK-10175] Fix concurrent access to shared buffer
between RocksDBMapState and querable state
URL: https://github.com/apache/flink/pull/6583#issuecomment-414705770
 
 
   @StefanRRichter 
   ```
   Exception in thread "main" java.util.concurrent.ExecutionException: java.lang.RuntimeException:
Failed request 73.
    Caused by: java.lang.RuntimeException: Failed request 73.
    Caused by: java.lang.RuntimeException: Error while processing request with ID 73. Caused
by: java.lang.ArrayIndexOutOfBoundsException: 17
   	at org.apache.flink.core.memory.DataInputDeserializer.readBoolean(DataInputDeserializer.java:123)
   	at org.apache.flink.api.java.typeutils.runtime.PojoSerializer.deserialize(PojoSerializer.java:405)
   	at org.apache.flink.contrib.streaming.state.RocksDBMapState.deserializeUserValue(RocksDBMapState.java:353)
   	at org.apache.flink.contrib.streaming.state.RocksDBMapState.access$100(RocksDBMapState.java:66)
   	at org.apache.flink.contrib.streaming.state.RocksDBMapState$RocksDBMapEntry.getValue(RocksDBMapState.java:454)
   	at org.apache.flink.queryablestate.client.state.serialization.KvStateSerializer.serializeMap(KvStateSerializer.java:222)
   	at org.apache.flink.contrib.streaming.state.RocksDBMapState.getSerializedValue(RocksDBMapState.java:298)
   	at org.apache.flink.queryablestate.server.KvStateServerHandler.getSerializedValue(KvStateServerHandler.java:107)
   	at org.apache.flink.queryablestate.server.KvStateServerHandler.handleRequest(KvStateServerHandler.java:84)
   	at org.apache.flink.queryablestate.server.KvStateServerHandler.handleRequest(KvStateServerHandler.java:48)
   	at org.apache.flink.queryablestate.network.AbstractServerHandler$AsyncRequestTask.run(AbstractServerHandler.java:236)
   	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   	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)
   
   	at org.apache.flink.queryablestate.server.KvStateServerHandler.handleRequest(KvStateServerHandler.java:95)
   	at org.apache.flink.queryablestate.server.KvStateServerHandler.handleRequest(KvStateServerHandler.java:48)
   	at org.apache.flink.queryablestate.network.AbstractServerHandler$AsyncRequestTask.run(AbstractServerHandler.java:236)
   	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   	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)
   
   	at org.apache.flink.queryablestate.network.AbstractServerHandler$AsyncRequestTask.lambda$run$11(AbstractServerHandler.java:273)
   	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
   	at java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:778)
   	at java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2140)
   	at org.apache.flink.queryablestate.network.AbstractServerHandler$AsyncRequestTask.run(AbstractServerHandler.java:236)
   	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   	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)
   
   	at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
   	at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
   	at org.apache.flink.streaming.tests.queryablestate.QsStateClient.getMapState(QsStateClient.java:121)
   	at org.apache.flink.streaming.tests.queryablestate.QsStateClient.main(QsStateClient.java:93)
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Fix concurrent access to shared buffer in map state / querable state
> --------------------------------------------------------------------
>
>                 Key: FLINK-10175
>                 URL: https://issues.apache.org/jira/browse/FLINK-10175
>             Project: Flink
>          Issue Type: Bug
>          Components: State Backends, Checkpointing
>    Affects Versions: 1.7.0
>            Reporter: Stefan Richter
>            Assignee: Stefan Richter
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 1.7.0
>
>
> Accidental sharing of buffers between event processing loop and queryable state thread
can happen in {{RocksDBMapState::deserializeUserKey}}. Queryable state should provide a separate
buffer.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message