mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-15 19:56:39 +00:00
use client timeout wait
This commit is contained in:
@@ -555,7 +555,9 @@ func (bc *BrokerClient) ReadRecords(ctx context.Context, session *BrokerSubscrib
|
||||
}
|
||||
|
||||
readStart := time.Now()
|
||||
ctx2, cancel2 := context.WithTimeout(context.Background(), currentTimeout)
|
||||
// CRITICAL: Use parent context (ctx) to respect client's MaxWaitTime deadline
|
||||
// The per-record timeout is combined with the overall fetch deadline
|
||||
ctx2, cancel2 := context.WithTimeout(ctx, currentTimeout)
|
||||
recvChan2 := make(chan recvResult, 1)
|
||||
|
||||
go func() {
|
||||
|
||||
@@ -244,9 +244,8 @@ func (h *Handler) handleFetch(ctx context.Context, correlationID uint32, apiVers
|
||||
// Phase 2: Wait for all results with adequate timeout for CI environments
|
||||
// CRITICAL: We MUST return a result for every requested partition or Sarama will error
|
||||
results := make([]*partitionFetchResult, len(pending))
|
||||
// Deadline must be longer than subscriber's record batching timeout (1s) to avoid premature timeout
|
||||
// Add 500ms buffer to account for network and processing overhead
|
||||
deadline := time.After(1500 * time.Millisecond)
|
||||
// Use the client's requested MaxWaitTime
|
||||
deadline := time.After(time.Duration(maxWaitMs) * time.Millisecond)
|
||||
|
||||
// Collect results one by one with shared deadline
|
||||
for i, pf := range pending {
|
||||
|
||||
Reference in New Issue
Block a user