hubcio opened a new pull request, #4313: URL: https://github.com/apache/iggy/pull/4313
In a cluster, two Go SDK paths reconnected under a new client identity that is not a group member, so the client lost its consumer group membership. The coordinator refused a manual StoreConsumerOffset or DeleteConsumerOffset for a partition whose primary is another node, and sendFrame then walked the roster and signed in again. Clustered offset writes now take the auto-commit poll path, as the Rust SDK does in PollRouter::write_offset. The coordinator names the primary in one exchange, and the write goes out on the data connection attached to the coordinator session. A request whose context ended mid-read closed the connection, and the server logged the client out. A cancellable request on a bound session now hands its exchange to a goroutine that owns the connection until the reply arrives or the request budget ends, like the task the Rust SDK spawns per exchange. The caller returns at once. The hop costs about 3.6 µs per cancellable request on loopback TCP. Fielded errors built from a code alone printed values the server never sent, such as "client id: 0". They now print "?" instead. No CI lane ran the Go-driven split-primary harness tests. The Rust job has no Go, and the Go job cannot build their fixture, which edits the metadata superblock of a stopped node. The TCP, QUIC and WebSocket Rust tests cover the same split-primary behavior through the Rust SDK, and the Go unit tests pin the Go routing, so this change deletes the harness tests. Fixes #4292 Refs #4273 -- 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]
