Skip to content

Flake: oracle corpus case fails once with "I/O error: No such file or directory" applying a rule in the subscription group engine #401

Closed

Description

@jsam

Seen once on 2026-10-06 in a local make unit-test run (devbox, lean debug build, branch fm/t-bundle-b on top of 2ed4a4a; the oracle changes on that branch add a corpus pack and an optional adapter, not this path):

iql_corpus_agrees_with_spec_and_reference panicked at tests/differential_oracle/corpus.rs:333:5:
1 divergences:
examples/iql/14_aggregations/16_empty_agg_edge_cases.iql.out: Outcome divergence in 'subscription[group]' vs 'recompute' at `+empty_avg(avg<V>) <- filtered(_, V)` (revision 5): Rejected("I/O error: No such file or directory (os error 2)"), baseline Applied

The subscription[group] adapter's engine (its own Handler on a private /dev/shm data directory, tests/differential_oracle/engine.rs) refused a persistent-rule insert with ENOENT, while the recompute engine applied it. Another oracle run (INPUTLAYER_ORACLE_VIEWS=maintained, which panics on startup) was running at the same time on the host, but no oracle path is shared between processes. Four reruns of the oracle and a full rerun of the suite passed.

An ENOENT on a rule commit points at a persistence write whose file or directory went missing under it (a temp file renamed twice, or a directory created lazily by another thread). Per the flake policy in TESTING.md: find the write that can see ENOENT, or mark the case Reproduction::Racy with this issue until it is fixed.

Activity

  1. jsam commented on Oct 6, 2026

    @jsam
    ContributorAuthor

    Likely the same cause as #402. The oracle binary runs several engines in one process. A rule commit calls revisions::reserve_ahead, which fails with ENOENT when another open engine in the process cannot write its revision bound, for example one whose temporary data directory was removed before the engine dropped. The refused engine's own files are not involved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions