Skip to content

Commit d8d9e73

Browse files
authored
Merge pull request #2558 from IBM/dnwe/proto
fix(proto): use fuller ranges of supported proto
2 parents cf96776 + e4bf4df commit d8d9e73

9 files changed

+78
-33
lines changed

admin.go

+21-2
Original file line numberDiff line numberDiff line change
@@ -987,9 +987,28 @@ func (ca *clusterAdmin) ListConsumerGroupOffsets(group string, topicPartitions m
987987
partitions: topicPartitions,
988988
}
989989

990-
if ca.conf.Version.IsAtLeast(V0_10_2_0) {
990+
if ca.conf.Version.IsAtLeast(V2_5_0_0) {
991+
// Version 7 is adding the require stable flag.
992+
request.Version = 7
993+
} else if ca.conf.Version.IsAtLeast(V2_4_0_0) {
994+
// Version 6 is the first flexible version.
995+
request.Version = 6
996+
} else if ca.conf.Version.IsAtLeast(V2_1_0_0) {
997+
// Version 3, 4, and 5 are the same as version 2.
998+
request.Version = 5
999+
} else if ca.conf.Version.IsAtLeast(V2_0_0_0) {
1000+
request.Version = 4
1001+
} else if ca.conf.Version.IsAtLeast(V0_11_0_0) {
1002+
request.Version = 3
1003+
} else if ca.conf.Version.IsAtLeast(V0_10_2_0) {
1004+
// Starting in version 2, the request can contain a null topics array to indicate that offsets
1005+
// for all topics should be fetched. It also returns a top level error code
1006+
// for group or coordinator level errors.
9911007
request.Version = 2
992-
} else if ca.conf.Version.IsAtLeast(V0_8_2_2) {
1008+
} else if ca.conf.Version.IsAtLeast(V0_8_2_0) {
1009+
// In version 0, the request read offsets from ZK.
1010+
//
1011+
// Starting in version 1, the broker supports fetching offsets from the internal __consumer_offsets topic.
9931012
request.Version = 1
9941013
}
9951014

client.go

+5
Original file line numberDiff line numberDiff line change
@@ -1197,9 +1197,14 @@ func (client *client) findCoordinator(coordinatorKey string, coordinatorType Coo
11971197
request.CoordinatorKey = coordinatorKey
11981198
request.CoordinatorType = coordinatorType
11991199

1200+
// Version 1 adds KeyType.
12001201
if client.conf.Version.IsAtLeast(V0_11_0_0) {
12011202
request.Version = 1
12021203
}
1204+
// Version 2 is the same as version 1.
1205+
if client.conf.Version.IsAtLeast(V2_0_0_0) {
1206+
request.Version = 2
1207+
}
12031208

12041209
response, err := broker.FindCoordinator(request)
12051210
if err != nil {

consumer_group.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,16 @@ func (c *consumerGroup) heartbeatRequest(coordinator *Broker, memberID string, g
534534
MemberId: memberID,
535535
GenerationId: generationID,
536536
}
537-
if c.groupInstanceId != nil {
537+
538+
// Version 1 and version 2 are the same as version 0.
539+
if c.config.Version.IsAtLeast(V0_11_0_0) {
540+
req.Version = 1
541+
}
542+
if c.config.Version.IsAtLeast(V2_0_0_0) {
543+
req.Version = 2
544+
}
545+
// Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts.
546+
if c.config.Version.IsAtLeast(V2_3_0_0) {
538547
req.Version = 3
539548
req.GroupInstanceId = c.groupInstanceId
540549
}

heartbeat_request.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ func (r *HeartbeatRequest) requiredVersion() KafkaVersion {
7272
return V2_0_0_0
7373
case 1:
7474
return V0_11_0_0
75+
case 0:
76+
return V0_8_2_0
7577
default:
76-
return V0_9_0_0
78+
return V2_3_0_0
7779
}
7880
}

heartbeat_response.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@ func (r *HeartbeatResponse) requiredVersion() KafkaVersion {
5757
return V2_0_0_0
5858
case 1:
5959
return V0_11_0_0
60+
case 0:
61+
return V0_8_2_0
6062
default:
61-
return V0_9_0_0
63+
return V2_3_0_0
6264
}
6365
}
6466

leave_group_request.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ func (r *LeaveGroupRequest) requiredVersion() KafkaVersion {
9393
return V2_0_0_0
9494
case 1:
9595
return V0_11_0_0
96-
default:
96+
case 0:
9797
return V0_9_0_0
98+
default:
99+
return V2_4_0_0
98100
}
99101
}

leave_group_response.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,10 @@ func (r *LeaveGroupResponse) requiredVersion() KafkaVersion {
9797
return V2_0_0_0
9898
case 1:
9999
return V0_11_0_0
100-
default:
100+
case 0:
101101
return V0_9_0_0
102+
default:
103+
return V2_4_0_0
102104
}
103105
}
104106

offset_fetch_request.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -177,22 +177,24 @@ func (r *OffsetFetchRequest) isValidVersion() bool {
177177

178178
func (r *OffsetFetchRequest) requiredVersion() KafkaVersion {
179179
switch r.Version {
180-
case 1:
181-
return V0_8_2_0
182-
case 2:
183-
return V0_10_2_0
184-
case 3:
185-
return V0_11_0_0
186-
case 4:
187-
return V2_0_0_0
188-
case 5:
189-
return V2_1_0_0
190-
case 6:
191-
return V2_4_0_0
192180
case 7:
193181
return V2_5_0_0
182+
case 6:
183+
return V2_4_0_0
184+
case 5:
185+
return V2_1_0_0
186+
case 4:
187+
return V2_0_0_0
188+
case 3:
189+
return V0_11_0_0
190+
case 2:
191+
return V0_10_2_0
192+
case 1:
193+
return V0_8_2_0
194+
case 0:
195+
return V0_8_2_0
194196
default:
195-
return MinVersion
197+
return V2_5_0_0
196198
}
197199
}
198200

offset_fetch_response.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -242,22 +242,24 @@ func (r *OffsetFetchResponse) isValidVersion() bool {
242242

243243
func (r *OffsetFetchResponse) requiredVersion() KafkaVersion {
244244
switch r.Version {
245-
case 1:
246-
return V0_8_2_0
247-
case 2:
248-
return V0_10_2_0
249-
case 3:
250-
return V0_11_0_0
251-
case 4:
252-
return V2_0_0_0
253-
case 5:
254-
return V2_1_0_0
255-
case 6:
256-
return V2_4_0_0
257245
case 7:
258246
return V2_5_0_0
247+
case 6:
248+
return V2_4_0_0
249+
case 5:
250+
return V2_1_0_0
251+
case 4:
252+
return V2_0_0_0
253+
case 3:
254+
return V0_11_0_0
255+
case 2:
256+
return V0_10_2_0
257+
case 1:
258+
return V0_8_2_0
259+
case 0:
260+
return V0_8_2_0
259261
default:
260-
return MinVersion
262+
return V2_5_0_0
261263
}
262264
}
263265

0 commit comments

Comments
 (0)