Open Gnarflord opened 9 months ago
Why does it matter whether nextcloud or I call the executable?
It shouldn't. If the temp directly doesn't exist though, it is likely a permissions issue somewhere.
I also suggest debugging with HW acceleration disabled
open_basedir=/var/lib/nextcloud/data:/var/lib/nextcloud/apps:/tmp:/usr/share/webapps/nextcloud:/etc/webapps/nextcloud:\/dev/urandom:/usr/lib/php-legacy/modules:/var/log/nextcloud:/proc/meminfo:/run/redis:/mnt/datengrab/data/nextcloud
The "not found" for /dev/dri/renderD128
looks like it's because of your open_basedir
settings. The file_exists()
check fails in PHP since it's not permitted by your configuration.
I'm also facing this problem and /dev/dri/renderD128
is indeed in the open_basedir
, as required. However, the logs are clearly showing conflicting messages.
==> /var/log/nextcloud/nextcloud.log <==
{"reqId":"h2HBsSauX27LeqVSWSLh","level":3,"time":"2024-09-20T07:45:50+00:00","remoteAddr":"194.39.218.10","user":"smirky","app":"PHP","method":"GET","url":"/apps/memories/api/system-status","message":"file_exists(): open_basedir restriction in effect. File
(/dev/dri/renderD128) is not within the allowed path(s): (/var/lib/nextcloud:/tmp:/usr/share/webapps/nextcloud:/etc/webapps/nextcloud:/dev/urandom:/usr/lib/php/modules:/var/log/nextcloud:/proc/meminfo:/proc/cpuinfo:/mnt/hdd-3TB/cloud_storage:/usr/bin:/dev/
dri/renderD128) at /var/lib/nextcloud/apps/memories/lib/Controller/AdminController.php#171","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36","version":"29.0.7.1","data":{"app":"PH
P"}}
# ls -l /dev/dri/renderD128
crw-rw-rw- 1 root render 226, 128 Sep 20 10:22 /dev/dri/renderD128
# groups nextcloud
redis render nextcloud
My setup is with NGINX + PHP-FPM.
Maybe you need /dev/dri
in the basedir restriction instead of the full device path?
I tried that too. In fact, I even tried just simply adding the whole root "/" , but it didn't make any difference. I'm not convinced it's open_basedir
that is the problem here.
Describe the bug This is all running natively on Arch Linux according to the Arch Wiki
If I set the application to use the internal go-vod transcoder I get a warning message: If I try to play any media the log just says "Error, memories, Transcode failed: Transcoder returned 408". I can see the running process:
But no go-vod related folders are created in /tmp! I double-checked if the php directive open-basedir limits the folder access of nextcloud but it looks fine:
The command to test the render pipeline also works correctly:
The permissions for the render card are set correctly, I've added the user
nextcloud
to bothvideo
andrender
:Now interestingly when I startup go-vod manually as the
nextcloud
user and setup memories to use an external encoder everything works perfectly:I can stream videos without any issues and the appropriate directories are created within /tmp. Why does it matter whether nextcloud or I call the executable?
To Reproduce Install nextcloud according to the arch wiki, setup VAAPI and add the memories app.
Platform: