Hey all, When an instance of a streams Processor is closed, is it supposed to call close() on any state stores that it retrieved from the ProcessorContext in its own close()?
I started following the pattern of having every Processor close every state store based upon this documentation's example ( http://docs.confluent.io/3.1.1/streams/developer-guide.html#processor-api), but, I see that at least some processors in Kafka Streams don't close their state stores (eg. https://github.com/apache/kafka/blob/a95170f822227c50414c57860e8547dc2e9d84cb/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KTableSource.java#L46 ). I've just pulled down Kafka Streams 0.10.2.0 RC0 to give it a test with my streams application, and I'm getting an error after the app is running for a while: org.apache.kafka.streams.errors.InvalidStateStoreException: Store projectTimeAllocation-projectBillingRateHistory-historical-lookup-store is currently closed. (full log: https://gist.github.com/mfenniak/cd108ad655ca63252be550c7b96414c5) I think that this is probably caused by having multiple custom processors attached to one state store and both of them closing it, so that's why I'm trying to determine whether this is the right behavior for me to do, or whether this exception might be a bug in Kafka Streams? Mathieu