Browse Source
Fix JoinGroup protocol parsing and subscription extraction
Fix JoinGroup protocol parsing and subscription extraction
CRITICAL FIX: Implement proper JoinGroup request parsing and consumer subscription extraction ## Issues Fixed: - JoinGroup was ignoring protocol type and group protocols from requests - Consumer subscription extraction was hardcoded to 'test-topic' - Protocol metadata parsing was completely stubbed out - Group instance ID for static membership was not parsed ## JoinGroup Request Parsing: - Parse Protocol Type (string) - validates consumer vs producer protocols - Parse Group Protocols array with: - Protocol name (range, roundrobin, sticky, etc.) - Protocol metadata (consumer subscriptions, user data) - Parse Group Instance ID (nullable string) for static membership (Kafka 2.3+) - Added comprehensive debug logging for all parsed fields ## Consumer Subscription Extraction: - Implement proper consumer protocol metadata parsing: - Version (2 bytes) - protocol version - Topics array (4 bytes count + topic names) - actual subscriptions - User data (4 bytes length + data) - client metadata - Support for multiple assignment strategies (range, roundrobin, sticky) - Fallback to 'test-topic' only if parsing fails - Added detailed debug logging for subscription extraction ## Protocol Compliance: - Follows Kafka JoinGroup protocol specification - Proper handling of consumer protocol metadata format - Support for static membership (group instance ID) - Robust error handling for malformed requests ## Testing: - Compilation successful - Debug logging will show actual parsed protocols and subscriptions - Should enable real consumer group coordination with proper topic assignments This fix resolves the third critical compatibility issue preventing real Kafka consumers from joining groups and getting correct partition assignments.pull/7231/head
1 changed files with 137 additions and 14 deletions
Write
Preview
Loading…
Cancel
Save
Reference in new issue