Skip to content

Honour GetOptions preconditions in UringLocalFileSystem and cover them in the conformance test #44

Description

@vyncint

TodayUringLocalFileSystem::get_opts (crates/oxidelake-storage/src/uring.rs:260-284) reads options.range and options.head only. LocalFileSystem::get_opts calls options.check_preconditions(&meta)? (object_store-0.13.2/src/local.rs:428), so if_match / if_none_match / if_modified_since are honoured by one store and ignored by the other. The docs describe the two stores as behaviourally identical; the conformance test (tests/object_store_conformance.rs::exercise) has no precondition cases. Also from the audit's P12: mpsc::unbounded_channel() (:154), File::open per read (:71), get_ranges serialised (:286-292).

Fix — call options.check_preconditions(&meta)? before the ranged read; add if_match/if_none_match cases to exercise so both stores are checked; bound the channel. Land alongside the error-path fix so the store is ready to be wired.

Done when — the conformance suite covers preconditions and passes for both stores under --features io-uring.

Activity

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

    bugSomething isn't working

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions