fix: blockwise tasks never resume — check_function always raises on daisy v2 - #65
fix: blockwise tasks never resume — check_function always raises on daisy v2#65rhoadesScholar wants to merge 4 commits into
Conversation
Add s3 uri option for lut class
…aisy v2
daisy v2's compat layer wraps `process_function` so it receives a funlib-typed
Block, but not `check_function` (daisy/v1_compat.py:221-225). So `check_block`
gets a native Block and blockwise.py:209 evaluates
block.write_roi.offset - block_array.offset
as daisy._daisy.Coordinate - funlib.geometry.Coordinate -> TypeError. The
scheduler treats a raising check as "not done", so every block is recomputed on
every rerun, silently.
Use daisy's own done-markers instead. tracking_path lives under meta_dir so
drop() keeps clearing the done state, and rerun semantics are unchanged.
|
Review, rewritten 2026-08-12 — the base blocker is resolved and the conflict is fixed, so this replaces a much longer earlier version. Conflict fixed ( MWE — one task, run twice, counting Tests: 191 passed, 3 failed. The same 3 ( Two things before it leaves draft:
📌 |
…resume-conflict-fix # Conflicts: # volara/blockwise/blockwise.py
check_functionraises on every block, so no block is ever seen as done and every rerun recomputes everything.Reproduction
One daisy task, 64 blocks, run twice. Second run should skip all 64.
On
main:On this branch:
Cause
daisy v2's compat layer wraps
process_functionso it receives a funlib-typedBlock(
daisy/v1_compat.py:221-225) but does not wrapcheck_function.check_blocktherefore gets anative
Block, andblockwise.py:209evaluatesdaisy._daisy.Coordinate - funlib.geometry.Coordinate:The scheduler catches a raising check as "not done", so the failure is silent.
Fix
Use daisy's built-in done-markers rather than checking
blocks_done.zarrthroughcheck_function.tracking_pathis undermeta_dir, sodrop()still clears the done state and rerun semantics areunchanged — markers outside
meta_dirwould survive a drop and skip everything.blocks_done.zarris left in place; removing it is a separate change.Tests
3 failed, 182 passedon bothmainand this branch — the threetest_loggingfailures arepre-existing and unrelated.
Related: funkelab/daisy#80 wraps
check_functionupstream, which fixes released volara versions too.These are complementary.