Implement Scheduler task with dual-channel coordination\n\nTask ID: task-2.1-implement-scheduler#356
Implement Scheduler task with dual-channel coordination\n\nTask ID: task-2.1-implement-scheduler#356eric-wang-1990 wants to merge 6 commits intomainfrom
Conversation
…k ID: task-1.1-update-cloudfetch-config
…emove-legacy-types
…-define-pipeline-types
…ask-2.1-implement-scheduler
…ask ID: task-2.2-implement-download-workers
|
[Critical] String-based 403/401 detection is fragile
Prefer a structured check. Since let is_auth_error = error_str.contains("HTTP 401")
|| error_str.contains("HTTP 403");Long-term, add a typed error variant (e.g. This comment was generated with GitHub MCP. |
|
[High] Scheduler's bounded If the consumer stops reading (e.g. drops or panics mid-stream without cancelling), Wrap the send in a tokio::select! {
res = result_channel.send(handle) => {
if res.is_err() { /* consumer dropped */ break; }
}
_ = cancel_token.cancelled() => break,
}This comment was generated with GitHub MCP. |
|
[High] Empty-batch chunks cause an infinite loop in the consumer In Either treat empty batches as an error, or advance if batches.is_empty() {
warn!("Chunk {} returned empty batches", chunk_index);
return Err(DatabricksErrorHelper::invalid_state()
.message(format!("Chunk {} returned no Arrow batches", chunk_index)));
}This comment was generated with GitHub MCP. |
🥞 Stacked PR
Use this link to review incremental changes.
What's Changed
Please fill in a description of the changes here.
This contains breaking changes.
Closes #NNN.