microsoft / microsoft/litebox

Define invalid-tar and nonblocking-device filesystem behavior

Open
#1,365 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2.7k
Forks
144
Avg merge
12h 21m
Merged PRs (30d)
146

Description

Follow-up from the static review of #1359. This work is intentionally outside the #1354-#1364 broker filesystem migration stack because both behaviors predate the stack and require broader API and compatibility decisions.

- [ ] Make tar-backed filesystem construction handle malformed archive data deliberately. `litebox_broker_core/src/fs/tar_ro.rs` currently treats archive bytes as trusted and uses panic-based assumptions while building `TarRo`. Decide on a fallible constructor contract and propagate failures consistently through broker userland and the remaining shim/runner callers.
- [ ] Define `O_NONBLOCK` behavior for synthetic devices. `litebox_broker_core/src/fs/devices.rs` currently uses `unimplemented!()` for nonblocking stdin, stdout, stderr, and urandom opens. Decide which devices should accept/ignore the flag, which require true nonblocking provider support, and which should return an explicit open error. Keep the current panic as an unsupported-path signal until that behavior is designed.

These items should not block or expand the current stacked PRs.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with litebox_broker_core/src/fs/tar_ro.rs and litebox_broker_core/src/fs/devices.rs, then trace the remaining shim and runner callers mentioned in the issue. Define the fallible TarRo construction and consistent failure propagation, and settle explicit O_NONBLOCK behavior for each synthetic device. Done means both API and compatibility decisions are implemented without leaving these paths panic-based.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.