Skip to content

Local test suite: unexplained non-determinism (the Synology Drive diagnosis is refuted) #38

Description

@guycorbaz

The measured symptom

During stories 4.15 and 4.17 (2026-07-25) the local suite was observed non-deterministic:

  • 8 test failures across 5 runs, with identical sha256 on the corpus artefacts and a
    clean git status at every run;
  • then 15+ consecutive green runs with no change to the tree.

CI has never reproduced it: 47 runs since 2026-07-22, all green, on clean checkouts.

The recorded cause is REFUTED

Story 4.17's Change Log and the Epic 4 report both recorded the cause as "the corpus was
transiently replaced by a stale server state; cloud-drive-daemon active on the tree."

That cause was never verified. It is false:

Check Result
cloud-drive-daemon process none running
Mount type of the tree local ext4, /dev/nvme0n1p2 — not a network mount
Rows in Synology Drive's history.sqlite touching opencmdb 0 — none, ever
Last Drive sync activity on /home/gcorbaz/Synology/devel 2026-07-12 13:37
First commit of opencmdb 2026-07-17 19:36

Synchronisation of devel was deliberately stopped by the maintainer because it was causing
problems — five days before this repository existed. The tree has never been synced while it
existed. The directory being named Synology/ made the wrong answer plausible on every axis
except the one that was checkable.

What is actually open

The cause of the 8 failures is unknown. Investigation stopped because the wrong explanation
was believed. Candidate directions, none of them checked yet:

  • cargo's mtime-based staleness detection on a tree written by several processes;
  • concurrent cargo test invocations racing on a shared scratch directory;
  • a corpus test reading files while another run rewrites them.

Acceptance

  • The symptom is reproduced (or a bounded attempt to reproduce it is recorded as inconclusive).
  • The real cause is named with the check that would fail if it were wrong — not a plausible story.
  • If it is environmental and not fixable, it is recorded as a named, measured limitation.

Context

  • Refuted during Epic 4's retrospective: _bmad-output/implementation-artifacts/epic-4-retro-2026-07-26.md
  • The merged story files (4.15, 4.17) keep their period text — history is not rewritten. The
    correction lives in the retrospective, in docs/project-context.md, and here.
  • Standing lesson this violated: name the test or the measurement behind every claim — until now
    applied to code only, never to an environment diagnosis.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions