Error on start - plexmediaserver (1.29.1.6260-420892357) - drmGetDevices2

Get the following error since this morning when restarted to update to the latest beta:

Error relocating /usr/lib/plexmediaserver/Plex Media Server: drmGetDevices2: symbol not found

Server Version#: 1.29.1.6260-420892357
Docker image: plexinc/pms-docker:beta

container log snippet:

PlexMediaServer install: Pre-installation Validation.
PlexMediaServer install: Docker detected. Preinstallation validation not required.
Unpacking plexmediaserver (1.29.1.6260-420892357) ...
Setting up plexmediaserver (1.29.1.6260-420892357) ...
PlexMediaServer install: Docker detected. Postinstallation tasks not required. Continuing.
[cont-init.d] 50-plex-update: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Starting Plex Media Server.
Error relocating /usr/lib/plexmediaserver/Plex Media Server: drmGetDevices2: symbol not found
Stopping Plex Media Server.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Starting Plex Media Server.
Error relocating /usr/lib/plexmediaserver/Plex Media Server: drmGetDevices2: symbol not found
Stopping Plex Media Server.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

currently reverted back to the public image so I can use plex otherwise its just in a constant reboot loop (plexinc/pms-docker:public)

Getting the same issue on this version as well, but on windows, bad update?

@chuckpa are you aware of this issue on the docker image? Using plexinc/pms-docker:beta with plex pass

Thanks

That’s a strange error. I run two containers on the same machine and both work normally, HDR tonemapping as well. Perhaps something with the underlying kernel, or access rights to the drm device?

@walderston

What’s the Distro and Version as well as CPU?

Please also confirm you’re updating a running container with 1.29.1 ?

@ChuckPa

Currently using QNAPs container station.
TVS-h1688X, QuTS hero h5.0.1.2045
Intel Xeon W-1250
128GB Memory

Docker:

[~] # docker version
Client:
 Version:           20.10.17-qnap1
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        0474f29
 Built:             Tue Jun 14 10:41:04 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17-qnap1
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       571a584
  Built:            Tue Jun 14 03:04:25 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309f
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

@walderston

Did you use my docker overlay mechanism or did you create a fully free-standing container?

If you created the overlay then you only need to install PMS 1.29.1 and you will have all the HEVC HDR hardware tonemapping capabilities in your existing installation.

You’ll be able to remove the docker container without losing data.

If a free-standing container, with some hunting, the container’s data (PMS) can be moved but it is a pain to go dig out.

@ChuckPa my docker-compose file

  plex:
    image: plexinc/pms-docker:public
    container_name: plex
    restart: always
    network_mode: host
    devices:
      - /dev/nvidia0:/dev/nvidia0
      - /dev/nvidiactl:/dev/nvidiactl
      - /dev/nvidia-uvm:/dev/nvidia-uvm
    environment:
      NVIDIA_VISIBLE_DEVICES: "all"
      NVIDIA_DRIVER_CAPABILITIES: "all"
      LD_LIBRARY_PATH: "/usr/local/cuda/extras/CUPTI/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64"
      PATH: "/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      VERSION: docker
      PLEX_UID:   "0"
      PLEX_GID:   "0"
      TZ:         "Europe/London"
    volumes:
      - "/share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV/usr:/usr/local/nvidia:rw"
      - "/share/Container/docker/media/plex/:/config:rw"
      - "/share/PlexTranscode:/PlexTranscode:rw"
      - "/share:/share:ro"

Issue happens on image: plexinc/pms-docker:beta

Switched to public to get Plex working

I am having the same issue
PLEXMEDIA SEVER QUIT UNEXPECTEDLY.
This happen when I start the server after the latest update

On a MacPro
2X2.26 GHz Quad-Core Intel Xeon
16 GB memory

I had no issues before update

I went back to public download to get server back up

1.29.0.6244-819d3678c update

@ChuckPa just checking you’ve seen the above :eyes:

@walderston

There were a few last-minute changes to PMS.

Still concerned about your Nvidia drivers. If you’re using 5.1.0 NVIDIA_GPU_DRV then please revert back to 5.0.4 . 5.1 breaks a lot of things. QNAP has been notified.

Your use of /usr/local/cuda/extras/CUPTI/lib64 is not typical. Not sure what it brings to the table.

Everything you need is in /opt/NVIDIA_GPU_DRV (outside the container)

(Refer to /etc/init.d/plex.sh to see how I grab the path GPU driver libs)

@ChuckPa
still using NVIDIA GPU Driver 5.0.4.1

Changed line to: LD_LIBRARY_PATH: "/usr/local/nvidia/lib:/usr/local/nvidia/lib64"
Still working on the public release but when switching to the plexpass release it fails with the same error as before.

Do you have an example of a docker-compose with HW transcoding for QNAP?

As of PMS 1.29.1, you don’t need docker to have HW tonemapping.

You might want PMS 1.29.2 forum preview to get the small fix which was included (it addressed a drmGetDevice issue

@ChuckPa
not using docker for the HW tonemapping. Using docker as I change between QNAP NASs often and its easier to migrate everything if they are in dockers

I’ve tried 1.29.2 and still get the same issue:

Container log
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 40-plex-first-run: executing... 
Plex Media Server first run setup complete
[cont-init.d] 40-plex-first-run: exited 0.
[cont-init.d] 45-plex-hw-transcode-and-connected-tuner: executing... 
[cont-init.d] 45-plex-hw-transcode-and-connected-tuner: exited 0.
[cont-init.d] 50-plex-update: executing... 
Attempting to upgrade to: 1.29.0.6244-819d3678c
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   190    0   190    0     0   1862      0 --:--:-- --:--:-- --:--:--  1862

  0 80.8M    0 44380    0     0   206k      0  0:06:41 --:--:--  0:06:41  206k
100 80.8M  100 80.8M    0     0  78.8M      0  0:00:01  0:00:01 --:--:-- 99.1M
Selecting previously unselected package plexmediaserver.
(Reading database ... 7274 files and directories currently installed.)
Preparing to unpack /tmp/plexmediaserver.deb ...
PlexMediaServer install: Pre-installation Validation.
PlexMediaServer install: Docker detected.  Preinstallation validation not required.
Unpacking plexmediaserver (1.29.0.6244-819d3678c) ...
Setting up plexmediaserver (1.29.0.6244-819d3678c) ...
PlexMediaServer install: Docker detected. Postinstallation tasks not required. Continuing.
[cont-init.d] 50-plex-update: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Starting Plex Media Server.
Critical: libusb_init failed
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
Stopping Plex Media Server.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
s6-svwait: fatal: timed out
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 40-plex-first-run: executing... 
[cont-init.d] 40-plex-first-run: exited 0.
[cont-init.d] 45-plex-hw-transcode-and-connected-tuner: executing... 
[cont-init.d] 45-plex-hw-transcode-and-connected-tuner: exited 0.
[cont-init.d] 50-plex-update: executing... 
[cont-init.d] 50-plex-update: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Starting Plex Media Server.
Error relocating /usr/lib/plexmediaserver/Plex Media Server: drmGetDevices2: symbol not found
Stopping Plex Media Server.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Starting Plex Media Server.
Error relocating /usr/lib/plexmediaserver/Plex Media Server: drmGetDevices2: symbol not found
Stopping Plex Media Server.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]```
docker-compose extract
  plextemp:
    image: plexinc/pms-docker:public
    container_name: plextemp
    restart: always
    network_mode: host
    devices:
      - /dev/nvidia0:/dev/nvidia0
      - /dev/nvidiactl:/dev/nvidiactl
      - /dev/nvidia-uvm:/dev/nvidia-uvm
    environment:
      NVIDIA_VISIBLE_DEVICES: "all"
      NVIDIA_DRIVER_CAPABILITIES: "all"
      LD_LIBRARY_PATH: "/usr/local/nvidia/lib:/usr/local/nvidia/lib64"
      PATH: "/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      VERSION: docker
      PLEX_UID:   "0"
      PLEX_GID:   "0"
      TZ:         "Europe/London"
    volumes:
      - "/opt/NVIDIA_GPU_DRV/usr:/usr/local/nvidia:rw"
      - "/share/Container/docker/media/plextemp/:/config:rw"
      - "/share/PlexTranscode:/PlexTranscode:rw"
      - "/share:/share:ro"

from the docker…
curl -o deb file
dpkg -i deb file
amend version.txt so that version=1.29.2.6273-xxxxxxxx
restart docker container

@ChuckPa any update ?

I’m trying to complete my recovery here from stupidly installing Ubuntu 22.04.

The last hurdle for me is to get my docker environment working again.

Regarding what you’ve posted; I’ve never seen it complain like that.

  1. lsb_init can, and routinely does, fail without consequence.
  2. KILL failing – OK if PMS isn’t running (which is expected here in this state)
  3. s6-svwait timeout? That’s news to me.

GOT IT :muscle: :slight_smile:

Here you can see creating the normal container (1.29.0)
Next you see me update to forum preview 1.29.2 without error as expected.

[chuck@lizum docker.2002]$ ./dockerplex
Error response from daemon: No such container: plex
Error: No such container: plex
Unable to find image 'plexinc/pms-docker:plexpass' locally
plexpass: Pulling from plexinc/pms-docker
a70d879fa598: Pull complete 
c4394a92d1f8: Pull complete 
10e6159c56c0: Pull complete 
d1042fe57e96: Pull complete 
ac5317c7b384: Pull complete 
47414e89d67b: Pull complete 
Digest: sha256:8aeb4a982ea564ad309861dd251cd9e218aac3f4e4d3da21375568341be1b16f
Status: Downloaded newer image for plexinc/pms-docker:plexpass
295c57efe549cd5f15a6a32380b161907dd9d0ce9a761dd6168dcaa7dc59888a
[chuck@lizum docker.2003]$ docker exec -it plex bash
root@dockerplex:/# dpkg -l | grep -i plexm
ii  plexmediaserver            1.29.0.6244-819d3678c             amd64        Plex organizes all of your personal media so you can easily access and enjoy it.
root@dockerplex:/# cd /config
root@dockerplex:~# ls
Library  plexmediaserver_1.29.2.6273-2b1f0cbcd_amd64.deb  tmp  transcode
root@dockerplex:~# pwd
/config
root@dockerplex:~# dpkg -i plexmediaserver_1.29.2.6273-2b1f0cbcd_amd64.deb 
(Reading database ... 9927 files and directories currently installed.)
Preparing to unpack plexmediaserver_1.29.2.6273-2b1f0cbcd_amd64.deb ...
PlexMediaServer install: Pre-installation Validation.
PlexMediaServer install: Docker detected.  Preinstallation validation not required.
Unpacking plexmediaserver (1.29.2.6273-2b1f0cbcd) over (1.29.0.6244-819d3678c) ...
Setting up plexmediaserver (1.29.2.6273-2b1f0cbcd) ...
PlexMediaServer install: Docker detected. Postinstallation tasks not required. Continuing.
root@dockerplex:~# 

I have no idea why your container does what it does.
If it makes any difference, I’m using docker-ce and not the wmdocker which is the default for Ubuntu.

@ChuckPa

thats when I restarted my docker container… put all the logs together

I’m using 5.0.4.1 and running into the same issue.

The reason for using /usr/local/cuda/extras/CUPTI/lib64 in my instance is because using /opt/NVIDIA_GPU_DRV resulted in my QNAP device NOT using HW encoding as expected. I assume @walderston was running into the same issue (or perhaps just has just mapped the devices directly - It appears we may have used the same article for configuration).

I will try pulling the 1.29.2 version and post results. Here’s my current docker run for comparison:

GPU=nvidia0 gpu-docker run -d --name=plex --net=host -e “PUID=1000” -e “PGID=1000” -e VERSION=docker -e UMASK_SET=022 -e PATH=“/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin” -e LD_LIBRARY_PATH=“/usr/local/cuda/extras/CUPTI/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64” -e NVIDIA_VISIBLE_DEVICES=“all” -e NVIDIA_DRIVER_CAPABILITIES=“all” -v “/share/CACHEDEVX_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/:/config” -v “/dev/shm:/transcode” -v “/share/myshare/:/certificates” -v “/share/myshare/:/media” -v “/share/myshare/:/music” --restart always linuxserver/plex:latest

EDIT: Also wanted to mention that I have to use container on my QNAP as my TVS-672N doesn’t support HW transcoding in the QNAP app, only in Container mode.

For anyone stumbling on this thread, the forum preview can be found here and grabbed via wget in your docker cli:

wget https://artifacts.plex.tv/plex-media-server-experimental/1.29.2.6273-2b1f0cbcd/debian/plexmediaserver_1.29.2.6273-2b1f0cbcd_amd64.deb “/yourpath/plexmediaserver_1.29.2.6273”

EDIT2: Can confirm after installing 1.29.2 manually in CLI to 1.29.1 container that the drmGetDevices2 issue still occurs. Perhaps I’ll try pulling 1.29.0 and installing 1.29.2 as you did in your example.

EDIT3: Can confirm after starting new container on 1.29.0 and manually installing 1.29.2 that the drmGetDevice2 error is still present and container will not start. Going to revert to 1.29.0 for now as that version started without issue.

If you want me to post/share any logs, let me know which ones you would like and I can do so. Or if I should change up my docker run command at all I’m open to try different things as well.

I do not understand the apparent need to use these extra pieces

when

$Docker run \
-d \
--name Plex \
--network=host \
-e TZ="EST" \
-e LANG="en_US.UTF-8" \
-e PLEX_UID=0 \
-e PLEX_GID=0 \
-e PUID=0 \
-e PGID=0 \
-h DockerPlex \
-v ${PLEX_DIR}/Library/:"/config/Library/Application Support" \
-v ${PLEX_DIR}/tmp:/tmp \
-v ${PLEX_DIR}/tmp:/transcode \
-v /share:/share \
--device=/dev/dri:/dev/dri \
plexinc/pms-docker:plexpass

works without issue. If you speak with QNAP, they will point you to this configuration.

Can you educate me as to what mandated all the extra options ? I suspect running PUID/PGID != 0 is a clue. It makes sense to run users as non-root but system services run as root on QNAP.

Sure - In my testing two months back I was finding that pointing to /dev/dri or /opt/NVIDIA_GPU_DRV, that my video card was not being utilized. I was watching it via Hardware Monitoring on my QNAP GUI. I specifically remember changing those options several times over the course of a couple hours to find which components were actually needed for proper hardware transcoding and that is what I ended up with. I was using a 4K LoTR movie for testing and saw great and constant utilization during the transcode. Without those options on the same file there was no utilization.

I also recall trying to copy the protected files out of /dev/dri and /opt/NVIDIA_GPU_DRV to a new directory to call specifically for the container, and that also did not work as intended.

This is the specific post I found and followed regarding those options:

I will try pointing to /dev/dri again, but as I recall QNAP was telling me the same that “it will work” but it clearly was not working as the card sat at 0% utilization while my CPU was cranking away at 100%.