hubcio commented on issue #4273: URL: https://github.com/apache/iggy/issues/4273#issuecomment-5812180102
i've put the fix in #4283. i reproduced two ways this can happen: `Logout` returns `InProgress` while another metadata request is pending, or logout skips cleanup because the client's entry was evicted from the bounded client table. the connection is gone, but the member still owns its partition. the heartbeat verifier only checks existing connections, so it can't revisit that client. replacements join but poll empty, and a restart can bring the stale membership back. the fix periodically checks stored memberships against live sessions across replicas. expired members are removed through a committed `Logout`, with a session check so delayed cleanup can't kick out a newer connection. the group and its saved offsets stay intact. a real-server test now verifies automatic recovery after client-table eviction: the server stays running, the waiting replacement gets the partition, and consumption resumes after the saved offset. the simulator reproduces `InProgress` too, though it still calls expiry directly. cleanup waits for the configured timeout and pauses on incomplete reports to protect live consumers. replicas need coordinated upgrades, but new servers can read previous snapshots and journal records. the storage compatibility check passed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
