Skip to content

[Bug]: youki silently drops sync and dirsync on tmpfs mounts #3818

Open

Description

@RaShiSho

Bug Description

The tmpfs mount succeeds, but /proc/self/mountinfo lacks the requested sync or dirsync superblock option. The container prints the actual mountinfo line.

The directly observed defect is a missing flag. This tmpfs test is not a disk persistence or performance benchmark.

The minimal configuration below was rechecked on 2026-10-01 using the fixed runtime commit recorded below. This does not claim a retest of current upstream HEAD.

Steps to Reproduce

Linux, root with namespace/cgroup permissions, and a statically linked BusyBox matching the host architecture (for example the busybox-static package). Use a fresh directory and rootfs for every candidate and control.

Save this complete configuration as config.json in the fresh directory:

{
  "ociVersion": "1.3.0",
  "root": {
    "path": "rootfs"
  },
  "process": {
    "terminal": false,
    "user": {
      "uid": 0,
      "gid": 0
    },
    "args": [
      "/busybox",
      "sh",
      "-c",
      "/busybox grep ' /stack ' /proc/self/mountinfo; exec /busybox sleep 300"
    ],
    "env": [
      "PATH=/"
    ],
    "cwd": "/"
  },
  "linux": {
    "namespaces": [
      {
        "type": "mount"
      },
      {
        "type": "pid"
      }
    ]
  },
  "mounts": [
    {
      "destination": "/proc",
      "type": "proc",
      "source": "proc"
    },
    {
      "destination": "/stack",
      "type": "tmpfs",
      "source": "tmpfs",
      "options": [
        "size=1m",
        "mode=777",
        "sync"
      ]
    }
  ]
}

Prepare the rootfs and any required fixture:

mkdir -p rootfs/dev
cp /path/to/static-busybox rootfs/busybox
export RUNTIME=/absolute/path/to/youki

Run individually without set -e, because a candidate may intentionally fail:

runtime=${RUNTIME:-youki}
"$runtime" --root "$PWD/state" create --bundle "$PWD" repro-youki >process.log 2>create.stderr
echo "create exit: $?"
cat create.stderr
"$runtime" --root "$PWD/state" state repro-youki
"$runtime" --root "$PWD/state" start repro-youki
echo "start exit: $?"
"$runtime" --root "$PWD/state" state repro-youki
sleep 0.1
cat process.log

After saving the observation, clean up only this test container:

"${RUNTIME:-youki}" --root "$PWD/state" delete --force repro-youki

Expectation

No response

System and Setup Info

youki version: 0.7.0
commit: 0.7.0-993a50ffb788be1a1a879f3446c10dd0c0b6a5a1
spec: 1.1.0
rustc: 1.96.0

Source commit: 993a50ffb788be1a1a879f3446c10dd0c0b6a5a1.

Host OS information

Ubuntu 24.04.1 LTS, x86_64, WSL2.

Host kernel information

6.6.114.1-microsoft-standard-WSL2.

Additional Context

youki-sync-mount-flags-reproducer.tar.gz

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions