Direct play works as expected, but anything needing any transcode (video or audio) fails without even starting the job.
Things I have tried:
Recreate the docker container by deleting the image and repulling the pms-docker image
Recheck folder permissions of /config and /transcode paths
Manually delete the cache and /transcode folder (and watch that PMS is able to recreate it)
Delete all libraries and recreate them
I have checked that PMS is able to recreate the /transcode and session folders even after manually deleting them, but it does not place any file in it.
I gave system user “plex” -rw permissions on the docker plex folder and all the subfolders and -r permission on the media folders, and added it when building the container (PLEX_UID 114, PLEX_GID 118).
I have also tried to assign root user when building the container again (PLEX_UID 0, PLEX_GID 0).
My plex docker path is located at a cache SSD with enough space left (+100GiB): /srv/dev-disk-by-label-cache/docker/plex /srv/dev-disk-by-label-cache/docker/plex/config /srv/dev-disk-by-label-cache/docker/plex/transcode
The server has transcoding capabilities (Intel Xeon E3-1230v5 + 32GB DDR4 ECC)
I have recreated the error to get additional information from the logs, by following the steps:
Stopped the container
Deleted the logs
Started the container
Activated the debug option
Asked for a file that needs to be transcoded from the android app
Waited for the transcoding error to get reproduced
Waited 15 secs
Grabbed the attached logs
The most informative lines with the error are: Mar 05, 2018 11:52:35.398 [0x7f8bc03ff700] **ERROR - JobManager: child process returned: 1 (Operation not permitted)** Mar 05, 2018 11:52:35.398 [0x7f8bc03ff700] **DEBUG - Jobs: '/usr/lib/plexmediaserver/Plex Transcoder' exit code for process 360 is 1**
If there is anything more I could provide, just ask for it.
Same OS, same docker config, same tests… I’ve had this issue since building the machine a few weeks ago. I get “exit code for process 362 is 1” in the logs instead of 360 but I sure hope someone here can help the both of us !
@“M@lice” said:
Same OS, same docker config, same tests… I’ve had this issue since building the machine a few weeks ago. I get “exit code for process 362 is 1” in the logs instead of 360 but I sure hope someone here can help the both of us !
At least I am not alone
In order to provide further details, transcoding worked nice when running Plex as a plugin via omvextras.org (using Plex user and Plex group), but not as docker container. So it seems that OS might not be the problem.
I highly suspect that it has something to do with permissions, as if I manually delete the /transcode folder, I watch it recreate the transcode path with the session folder included for the current transcoding task but it leaves it empty and it does not trigger the transcoding process or write any file in it.
But curiosly enough, the /config folder gets written every minute.
And I have tried to give the container user root permissions, and still nothing gets written in the session folder for each transcode I ask for. Also rechecked Plex docker user permissions (-rw on the root folder of the container and all its subdirectories).
If any other log or test is needed, just ask for it.
The problem is that I had disabled the exec permissions on the drive I have the docker container running, and therefore the transcoder.exe could not execute itself.
I realized because as a OpenMediaVault plugin, transcoding worked as it run from the OS drive, which has exec permissions. But as a docker, as I have it running from the cache drive with the noexec flag, it could not even start.
So the solution was:
unmount the cache drive (umount /dev/sdx1)
edit the fstab file (nano /etc/fstab)
swap the “noexec” flag with the “exec” one
save and exit
remount the cache drive (mount /dev/sdx1)
reboot OpenMediaVault/restart container
Now transcoding works in every system (android client, plex media player, smarttv…).
The problem with making manual edits to /etc/fstab in OMV is that they are not permanent.
Your change will be lost the next time you add/remove a disk or create a filesystem because /etc/fstab will be rewritten and “exec” is not the default option, “noexec” is.
What you should do is make the change in /etc/default/openmediavault on the line that begins with:
I’m running Plex Media Server form Docker on a Odroid HC1, and I have the same problem.
Anybody could help me with some simple instruction to solve it please?
I tried to unmount the cache drive (umount /dev/sdx1)… but there’s no /dev/sdx1 mounted.
I also tried to edit /etc/default/openmediavault but there’s no “OMV_FSTAB_MNTOPS_EXT4=” to edit there.
Oh man, I’m glad I found this. I couldn’t figure out why my docker plex wasn’t transcoding… this did it. I even tried putting my /transcode on the main drive (since its ssd) and that wouldn’t do it as well.