[ https://issues.apache.org/jira/browse/KAFKA-16290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17819143#comment-17819143 ]
Lucas Brutschy commented on KAFKA-16290: ---------------------------------------- Subscription state is updated directly, which may cause records to be fetched immediately, but group metadata is propagated to the application thread only via queues, so we end up in a race condition where group metadata is not available but we already fetched records from our group. > Investigate propagating subscription state updates via queues > ------------------------------------------------------------- > > Key: KAFKA-16290 > URL: https://issues.apache.org/jira/browse/KAFKA-16290 > Project: Kafka > Issue Type: Task > Components: clients, consumer > Reporter: Lucas Brutschy > Priority: Major > Labels: kip-848 > > We are mostly using the queues for interaction between application thread and > background thread, but the subscription object is shared between the threads, > and it is updated directly without going through the queues. > The way we allow updates to the subscription state from both threads is > definitely not right, and will bring trouble. Places like the assign() is > probably the most obvious, where we send an event to the background to > commit, but then update the subscription in the foreground right away. > It seems sensible to aim for having all updates to the subscription state in > the background, triggered from the app thread via events (and I think we > already have related events for all updates, just that the subscription state > was left out in the app thread). -- This message was sent by Atlassian Jira (v8.20.10#820010)