The edge posts the open batch before a failed stream gives the group back
A plain stop and a chunk that doesn't inflate already posted the batch so far, so the stop snapshot stood at a stored resume point; a failed stream (the stalled one's "Peer disconnected") skipped the post, left the batch open and lost the window with the snapshot refused. Now only a batch the coordinator refused stays open. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
31fc204c76
commit
e3957e5af5
3 files changed
+13
-6
No files matched your search
@@ -629,9 +629,10 @@ fn run_group_range(api: &Arc<Api>, group_id: i64, group_name: &str, range: Range
|
||||
}
|
||||
}
|
||||
}
|
||||
// Stopped mid-range (or at a chunk that doesn't inflate): the batch so far goes out, so the snapshot stands at
|
||||
// a stored resume point, and a chunk reported corrupt is read again from its own start.
|
||||
if !reached_end && failure.is_none() && post_error.lock().unwrap().is_none() && indexer.next() > batch_from {
|
||||
// Stopped mid-range (a stop, a stream that failed, a chunk that doesn't inflate): the batch so far goes out,
|
||||
// so the snapshot stands at a stored resume point and the window survives the group going back; a chunk
|
||||
// reported corrupt is read again from its own start. Only a batch the coordinator refused stays open.
|
||||
if !reached_end && post_error.lock().unwrap().is_none() && indexer.next() > batch_from {
|
||||
let _ = post_tx.send(indexer.take());
|
||||
}
|
||||
drop(post_tx);
|
||||
|
||||
Reference in new issue
Block a user