Sal Sorrentino created KAFKA-16514:
--------------------------------------
Summary: Kafka Streams: stream.close(CloseOptions) does not
respect options.leaveGroup flag.
Key: KAFKA-16514
URL: https://issues.apache.org/jira/browse/KAFKA-16514
Project: Kafka
Issue Type: Bug
Components: streams
Reporter: Sal Sorrentino
Working with Kafka Streams 3.7.0, but may affect earlier versions as well.
When attempting to shutdown a streams application and leave the associated
consumer group, the supplied `leaveGroup` option seems to have no effect.
Sample code:
{code:java}
CloseOptions options = new CloseOptions().leaveGroup(true);
stream.close(options);{code}
The expected behavior here is that the group member would shutdown and leave
the group, immediately triggering a consumer group rebalance. In practice, the
rebalance happens after the appropriate timeout configuration has expired.
I understand the default behavior in that there is an assumption that ant
associated StateStores would be persisted to disk and that in the case of a
rolling restart/deployment, the rebalance delay may be preferable. However, in
our application we are using in-memory state stores and standby replicas. There
is no benefit in delaying the rebalance in this setup and we are in need of a
way to force a member to leave the group when shutting down.
The workaround we found is to set an undocumented internal StreamConfig to
enforce this behavior:
{code:java}
props.put("internal.leave.group.on.close", true);
{code}
To state the obvious, this is less than ideal.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)