fix(scheduler): Restore ReducerContext recording for scheduled reducers#3947
Merged
gefjon merged 2 commits intoclockworklabs:masterfrom Jan 9, 2026
Merged
Conversation
This fixes a regression introduced in commit afe169a ("Fix the issues with scheduling procedures clockworklabs#3816", Dec 5, 2025) where scheduled reducers stopped recording their ReducerContext to the commitlog. ## Problem When a scheduled reducer runs, the transaction was started with `Workload::Internal`, and the code path that would patch it to `Workload::Reducer(ReducerContext)` was removed during the refactor. This meant that: 1. No `inputs` section was written to the commitlog for scheduled reducers 2. The reducer's name, caller, timestamp, and arguments were not persisted ## Root Cause The old code in `module_host.rs::call_scheduled_reducer_inner` had: tx.ctx = ExecutionContext::with_workload( tx.ctx.database_identity(), Workload::Reducer(ReducerContext { ... }), ); This patching was removed when the logic was moved to `scheduler.rs`. The new code in `call_reducer_with_tx` creates a ReducerContext but only uses it when `tx` is `None` - since the scheduler passes `Some(tx)`, the ReducerContext was never applied. ## Fix Restore the `tx.ctx` patching in `scheduler.rs` before calling `call_reducer_with_tx`, ensuring the ReducerContext is properly set for scheduled reducers just as it was before the refactor.
gefjon
approved these changes
Jan 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This fixes a regression introduced in commit afe169a ("Fix the issues with scheduling procedures #3816", Dec 5, 2025) where scheduled reducers stopped recording their
ReducerContextto the commitlog.Impact:
inputssection was written to the commitlog for scheduled reducersRoot Cause
The old code in
module_host.rs::call_scheduled_reducer_innerpatchedtx.ctxwith theReducerContext:This was removed when the logic moved to
scheduler.rs. The new code incall_reducer_with_txonly applies theReducerContextwhentxisNone— since the scheduler passesSome(tx), the context was never applied.Fix
Restore the
tx.ctxpatching inscheduler.rsbefore callingcall_reducer_with_tx.Test Plan