The GitHub Actions job "Comment commands" on texera.git/main has succeeded. Run started by GitHub user Yicong-Huang (triggered by Yicong-Huang).
Head commit for run: a7d4bc622f639aa3445d2c199ae4bbded28b8d1c / Matthew B. <[email protected]> fix: drop withDefaultValue from StatisticsManager so checkpoint state round-trips (#5150) ### What changes were proposed in this PR? `StatisticsManager` declared its input/output stats maps as `mutable.Map.empty.withDefaultValue((0L, 0L))`. The resulting `Map.WithDefault` wrapper does not survive a Kryo round-trip (its inner map deserializes as null), so `chkpt.load(CP_STATE_KEY)` on a default-state `ControllerProcessor` throws `KryoException: NullPointerException`, blocking `Controller.loadFromCheckpoint` from ever rehydrating a checkpointed controller. This PR removes the wrapper and inlines `getOrElse(portId, (0L, 0L))` at the two write sites; behavior is unchanged. ### Any related issues, documentation, or discussions? closes: #4686 ### How was this PR tested? Replaced the two existing `should be serializable` cases in `CheckpointSpec` with full save then load round-trips (controller + worker) that assert `restored.actorId == original.actorId`; the new tests reproduce the original NPE on `main` and pass after the fix. Verified locally with `sbt 'WorkflowExecutionService / Test / testOnly org.apache.texera.amber.engine.faulttolerance.CheckpointSpec'` (3/3 pass). ### Was this PR authored or co-authored using generative AI tooling? Co-authored with Claude Opus 4.7 in compliance with ASF --------- Signed-off-by: Matthew B. <[email protected]> Report URL: https://github.com/apache/texera/actions/runs/26325822257 With regards, GitHub Actions via GitBox
