[ https://issues.apache.org/jira/browse/KAFKA-10030?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dima R updated KAFKA-10030: --------------------------- Description: StreamThreadStateStoreProvider#stores throws exception whenever taskId is not found, which is not correct behaviour in multi-threaded env where state store partitions are distributed among several StreamTasks. {code:java} final Task task = tasks.get(keyTaskId); if (task == null) { throw new InvalidStateStoreException( String.format("The specified partition %d for store %s does not exist.", storeQueryParams.partition(), storeName)); }{code} Reproducible with KStream number of threads more then 1 StoreQueryIntegrationTest#streamsConfiguration config.put(StreamsConfig.NUM_STREAM_THREADS_CONFIG, 2); Suggested solution is to not throw exception if at least one state store is found was: StreamThreadStateStoreProvider#stores throws exception whenever taskId is not found, which is not correct behaviour in multi-threaded env where state store partitions are distributed among several StreamTasks. {code:java} final Task task = tasks.get(keyTaskId); if (task == null) { throw new InvalidStateStoreException( String.format("The specified partition %d for store %s does not exist.", storeQueryParams.partition(), storeName)); }{code} Reproducible with KStream number of threads more then 1 StoreQueryIntegrationTest#streamsConfiguration config.put(StreamsConfig.NUM_STREAM_THREADS_CONFIG, 2); Suggested solution is to not throw exception if at least one state store is found, which is always true when using StoreQueryParameters.withPartition > Throw exception while fetching a key from a single partition > ------------------------------------------------------------ > > Key: KAFKA-10030 > URL: https://issues.apache.org/jira/browse/KAFKA-10030 > Project: Kafka > Issue Type: Bug > Components: streams > Affects Versions: 2.5.0 > Environment: StreamsConfig.NUM_STREAM_THREADS_CONFIG=2 > Reporter: Dima R > Priority: Major > Labels: KAFKA-9445, KIP-562 > Fix For: 2.6.0, 2.5.1 > > > StreamThreadStateStoreProvider#stores throws exception whenever taskId is not > found, which is not correct behaviour in multi-threaded env where state store > partitions are distributed among several StreamTasks. > {code:java} > final Task task = tasks.get(keyTaskId); > if (task == null) { > throw new InvalidStateStoreException( > String.format("The specified partition %d for store %s does not exist.", > storeQueryParams.partition(), > storeName)); > }{code} > Reproducible with KStream number of threads more then 1 > StoreQueryIntegrationTest#streamsConfiguration > config.put(StreamsConfig.NUM_STREAM_THREADS_CONFIG, 2); > > Suggested solution is to not throw exception if at least one state store is > found -- This message was sent by Atlassian Jira (v8.3.4#803005)