nil checking

This commit is contained in:
chrislu
2025-10-13 21:07:48 -07:00
parent fba4fc3a7d
commit f15eaaf8b9

View File

@@ -442,6 +442,15 @@ func (bc *BrokerClient) ReadRecords(ctx context.Context, session *BrokerSubscrib
// Try to receive first record
go func() {
// Check if stream is nil (can happen during session recreation race condition)
if session.Stream == nil {
select {
case recvChan <- recvResult{resp: nil, err: fmt.Errorf("stream is nil")}:
case <-ctx.Done():
// Context cancelled, don't send (avoid blocking)
}
return
}
resp, err := session.Stream.Recv()
select {
case recvChan <- recvResult{resp: resp, err: err}:
@@ -501,6 +510,15 @@ func (bc *BrokerClient) ReadRecords(ctx context.Context, session *BrokerSubscrib
recvChan2 := make(chan recvResult, 1)
go func() {
// Check if stream is nil (can happen during session recreation race condition)
if session.Stream == nil {
select {
case recvChan2 <- recvResult{resp: nil, err: fmt.Errorf("stream is nil")}:
case <-ctx2.Done():
// Context cancelled
}
return
}
resp, err := session.Stream.Recv()
select {
case recvChan2 <- recvResult{resp: resp, err: err}: