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

Reply via email to