Bug
TaskExecutor::shutdown_all logs handler cleanup failures and task panics but always returns Ok(()). Since ShardWriter::close merges that result into its close result, a failed task shutdown can be reported to callers as a successful close.
Expected behavior
- Preserve and return the first handler error or task panic.
- Continue joining every remaining task so shutdown is still complete.
- Keep the existing diagnostic logging for every failed task.
Reproduction
Register a message handler whose cleanup returns an intentional error, then call shutdown_all. The current implementation logs the error and returns Ok(()) instead of surfacing it.
Acceptance criteria
Scope
This issue covers task-executor shutdown error propagation only. Other MemWAL close, durability, fencing, and index-validation behavior is out of scope.
Bug
TaskExecutor::shutdown_alllogs handler cleanup failures and task panics but always returnsOk(()). SinceShardWriter::closemerges that result into its close result, a failed task shutdown can be reported to callers as a successful close.Expected behavior
Reproduction
Register a message handler whose cleanup returns an intentional error, then call
shutdown_all. The current implementation logs the error and returnsOk(())instead of surfacing it.Acceptance criteria
shutdown_allreturns an error when a handler cleanup returns an error.shutdown_allreturns an error when a handler task panics.Ok(())instead of discarding the result.ShardWriter::closecontinues to include task-shutdown failures in its staged close result.Scope
This issue covers task-executor shutdown error propagation only. Other MemWAL close, durability, fencing, and index-validation behavior is out of scope.