docs: remove bind-propagation=shared, document runc v1.3.5 crash

runc v1.3.5 (Docker 29.x / Unraid 7.3+) crashes on bind-propagation=shared
with any container — not GPU-specific. Ramdisk tmpfs is already MS_SHARED
at kernel level; propagation is automatic and the option is unnecessary.

- Remove bind-propagation=shared from all example Extra Parameters
- Update "Why shared Is Required" → "Mount Propagation — Unraid 7.3+"
- Update GPU troubleshooting section to cover the general runc crash
- Verify commands updated (no longer checking for Propagation: shared)
- Historical notes preserved explaining why it existed before

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Gmer4Lfe
2026-05-31 14:08:17 -04:00
co-authored by Claude Sonnet 4.6
parent cd2fd1af70
commit cbf8593225
4 changed files with 86 additions and 92 deletions
+15 -15
View File
@@ -702,17 +702,17 @@ unRAID forum posts, community applications templates, and most search results.
**Why it breaks here:**
1. `--runtime=nvidia` combined with `NVIDIA_VISIBLE_DEVICES` conflicts with
`bind-propagation=shared` on unRAID 7.2.5+. A kernel change in mount namespace
initialization exposed a conflict between the NVIDIA device mount phase and shared
propagation setup. The container fails to start with:
1. `--runtime=nvidia` combined with `NVIDIA_VISIBLE_DEVICES` has caused conflicts
historically and breaks on container rebuilds. With Docker 29.x (Unraid 7.3+),
`bind-propagation=shared` crashes runc v1.3.5 entirely — with any container,
GPU or not. The container fails to start with:
```
OCI runtime create failed: unable to start container process:
error jailing process inside rootfs:
open /proc/self/mountinfo: no such file or directory
```
This system uses `bind-propagation=shared` for the transcode ramdisk mount.
Emby and Jellyfin both require it. The old nvidia method makes them incompatible.
The ramdisk tmpfs is already MS\_SHARED at the kernel level. Do not use
`bind-propagation=shared` in Extra Parameters on Unraid 7.3+.
2. When unRAID rebuilds a container from template (update, reinstall from Community
Applications), the `--runtime=nvidia` field and the NVIDIA env vars can be dropped
@@ -723,13 +723,13 @@ unRAID forum posts, community applications templates, and most search results.
```bash
# DO THIS — everything in Extra Parameters, nothing in Variables
--gpus "device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1" --pids-limit=0 --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared
--gpus "device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1" --pids-limit=0 --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode
```
`--gpus "device=UUID"` is Docker-native GPU support (Docker 19.03+, released 2019).
One field in Extra Parameters. The UUID pins a specific device — no ambiguity on
single-GPU systems. No env vars needed. No `--runtime=nvidia`. No conflict with
`bind-propagation=shared`. Survives container rebuilds. This is the correct method.
single-GPU systems. No env vars needed. No `--runtime=nvidia`. Survives container
rebuilds. This is the correct method.
Find your GPU UUID: `nvidia-smi -L`
@@ -836,13 +836,13 @@ Things that are different from what you might expect:
# HOST1 and HOST2 — no branching on server identity inside scripts.
# 6. GPU containers: ignore every Google result. Use --gpus, not --runtime=nvidia.
# --runtime=nvidia conflicts with bind-propagation=shared on unRAID 7.2.5+.
# It also breaks on container rebuilds. See GPU CONTAINERS section above.
# --runtime=nvidia breaks on container rebuilds. See GPU CONTAINERS section above.
# 7. The Emby Docker mount is unusual and critical.
# --mount type=bind,...,bind-propagation=shared in Extra Parameters — not a
# standard path mapping. Without shared propagation symlink flips are silently
# ignored. README-Transcoding.md explains why in detail.
# 7. The Emby/Jellyfin Docker mount is unusual and critical.
# --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode
# in Extra Parameters — not a standard path mapping. Do NOT add bind-propagation=shared:
# runc v1.3.5+ (Docker 29.x, Unraid 7.3+) rejects it. The ramdisk is already
# MS_SHARED at the kernel level. README-Transcoding.md explains in detail.
# 8. arr cleanup scripts can delete files.
# lidarr_cleanup.sh, sonarr_cleanup.sh, radarr_cleanup.sh permanently delete