Skip to content

Commit d99dd6d

Browse files
authored
fix: a bug that panic if there are no alive clients (#15)
1 parent d0f1685 commit d99dd6d

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

syncclient.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,18 +69,23 @@ func (k *Kinesumer) syncShardInfo(ctx context.Context) error {
6969
return errors.WithStack(err)
7070
}
7171

72+
// Skip if there are no alive clients.
73+
numOfClient := len(clientIDs)
74+
if numOfClient == 0 {
75+
return nil
76+
}
77+
78+
// Simple leader selection: take first (order by client id).
7279
var idx int
7380
for i, id := range clientIDs {
7481
if id == k.id {
7582
idx = i
7683
break
7784
}
7885
}
79-
// Simple leader selection: take first (order by client id).
8086
k.leader = idx == 0
8187

8288
// Update shard information.
83-
numOfClient := len(clientIDs)
8489
for _, stream := range k.streams {
8590
if err := k.syncShardInfoForStream(ctx, stream, idx, numOfClient); err != nil {
8691
return errors.WithStack(err)

0 commit comments

Comments
 (0)