mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-11-08 02:34:46 +08:00
nil checking
This commit is contained in:
@@ -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}:
|
||||
|
||||
Reference in New Issue
Block a user