Skip to content

Revisit checkpoint auto-disable for user threads/processes #1766

@ilongin

Description

@ilongin

utils.checkpoints_enabled() disables checkpoints under user threading/multiprocessing. The docstring justifies it as "hash chain ordering is non-deterministic across concurrent saves" — but that's not true anymore.

Per-chain hashing means each chain starts a fresh hashlib.sha256() seeded with its own _starting_step_hash (query/dataset.py:2739). Two concurrent chains produce stable, deterministic hashes regardless of .save() ordering.

Walked through single-chain construction patterns under user threading/multiprocessing — no realistic case where it corrupts that chain's hash. Non-deterministic UDFs are already a separate limitation.

Surfaced from #1633.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions