Tdarr loses GPU - manual restart fixes
Posted by simplebenn
Problem: Tdarr loses GPU (/dev/dri) passthrough after every sparkbox update — reproduced 3 times now. Setup: UGREEN DXP4800 (Creek), JELLYFINHWACCEL=intel set correctly, host has a real Intel iGPU with /dev/dri/card0 + /dev/dri/renderD128 present and correctly permissioned (video/render groups) at all times on the host — host-side device never disappears. What happens: Tdarr's hw overlay (docker-compose.hw.yml) is correctly merged on a normal sparkbox restart tdarr, giving the container full /dev/dri access. But after a sparkbox update cycle, the overlay is dropped — Tdarr comes back up "healthy" in the dashboard but with zero GPU access, and QSV transcodes fail. Proof — before/after docker inspect on this exact update run: Before update: sudo docker inspect -f '{{json .HostConfig.Devices}}' sb-tdarr [{"PathOnHost":"/dev/dri","PathInContainer":"/dev/dri","CgroupPermissions":"rwm"}] sudo docker exec sb-tdarr ls -la /dev/dri crw-rw---- 1 root video 226, 0 card0 crw-rw---- 1 root render 226, 128 renderD128 After update: sudo docker inspect -f '{{json .HostConfig.Devices}}' sb-tdarr null sudo docker exec sb-tdarr ls -la /dev/dri ls: cannot access '/dev/dri': No such file or directory Fix that works every time: sudo sparkbox restart tdarr — re-merges the hw overlay, GPU acces …(reply truncated — full chat sent to Tom)
1 replies
Chris wrote:
Hey simplebenn -- that's some of the cleanest before/after proof we've gotten, really appreciate it. This looks like the same class of GPU-detection bug from the Tdarr thread you posted earlier this week, which Tom's team believed they'd closed. Since you're still hitting it specifically after sparkbox update, there may be a gap in that exact path the earlier fix didn't cover -- I've flagged this with your full repro so it gets a proper look. Your workaround (sudo sparkbox restart tdarr after each update) is safe to keep using in the meantime, no downside to running it every time.