I’m having this issue on Ubuntu 20.04, Linux 5.8.0, Plex on an Nvidia Quadro P2200 (5GB) with Plex Web Player.
I am able to consistently reproduce this issue on both Plex Web and SyncLounge player. I am able to transcode to any arbitrary quality on Plex Android.
Hardware transcoding sometimes works. Changing the quality to any setting other than original on Plex Web Player has a very high chance of killing hwaccel Plex Transcoder. Often Plex will give up on hardware transcoding and resort to software, which pegs all 12c/24t CPU depending on the number of transcodes.
I tried all of the fixes listed in this thread (As indicated by my mismatched kernel version for Ubuntu 20.04).
These problems were happening on nvidia-440 and nvidia-450 (beta) on Ubuntu 18.04 with kernel 4.4.0-generic, so I upgraded to Ubuntu 20.04 with kernel 5.4.X. Still had the same problem. Updated kernel again to 5.8.X and still have the issue.
Current setup:
Kernel && Ubuntu Version
% uname -a && grep DISTRIB_DESCRIPTION /etc/*release
Linux nas 5.8.0-050800rc6-generic #202007192331 SMP Sun Jul 19 23:33:45 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
/etc/lsb-release:DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
Drivers and Plex groups match
% ls -l /dev/dri && groups plex
total 0
drwxr-xr-x 2 root root 100 Jul 25 11:50 by-path
crw-rw---- 1 root video 226, 0 Jul 25 11:50 card0
crw-rw---- 1 root video 226, 1 Jul 25 11:50 card1
crw-rw---- 1 root video 226, 128 Jul 25 11:50 renderD128
plex : plex video media
Transcoder dies most of the time right after swapping the quality on Plex Web. Plex Web Player hangs indefinitely with 404 errors in js console.
root ~plex/Library/Application Support/Plex Media Server/Logs % \
ls -1 \
| grep '[a-z]\.log' \
| xargs -d '\n' tail -F 2>/dev/null \
| grep died
Jul 25, 2020 12:16:29.857 [0x7f30877fe700] WARN - Transcode runner appears to have died.
Jul 25, 2020 12:16:29.901 [0x7f2fe9fff700] WARN - Transcode runner appears to have died.
Driver group verification
% ls -l /dev/dri && groups plex
total 0
drwxr-xr-x 2 root root 100 Jul 25 11:50 by-path
crw-rw---- 1 root video 226, 0 Jul 25 11:50 card0
crw-rw---- 1 root video 226, 1 Jul 25 11:50 card1
crw-rw---- 1 root video 226, 128 Jul 25 11:50 renderD128
plex : plex video media
Driver / Package version verification (xserver-xorg installed by recommends, headless server)
% apt list --installed 2>/dev/null| grep nvidia | grep -v libnvidia
nvidia-compute-utils-450/focal,now 450.57-0ubuntu0~0.20.04.2 amd64 [installed]
nvidia-dkms-450/focal,now 450.57-0ubuntu0~0.20.04.2 amd64 [installed,automatic]
nvidia-driver-450/focal,now 450.57-0ubuntu0~0.20.04.2 amd64 [installed]
nvidia-kernel-common-450/focal,now 450.57-0ubuntu0~0.20.04.2 amd64 [installed,automatic]
nvidia-kernel-source-450/focal,now 450.57-0ubuntu0~0.20.04.2 amd64 [installed,automatic]
nvidia-prime/focal,focal,now 0.8.14 all [installed,automatic]
nvidia-settings/focal-updates,now 440.82-0ubuntu0.20.04.1 amd64 [installed,automatic]
nvidia-utils-450/focal,now 450.57-0ubuntu0~0.20.04.2 amd64 [installed,automatic]
xserver-xorg-video-nvidia-450/focal,now 450.57-0ubuntu0~0.20.04.2 amd64 [installed]
CPU information (2x Xeon 5650s, dual socket motherboard)
% grep model\ name /proc/cpuinfo | head -n1
model name : Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
Display information
% lshw -C display
*-display
description: VGA compatible controller
product: GP106GL [Quadro P2200]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:06:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:45 memory:dd000000-ddffffff memory:c0000000-cfffffff memory:be000000-bfffffff ioport:fc80(size=128) memory:dc000000-dc07ffff
*-display
description: VGA compatible controller
product: MGA G200eW WPCM450
vendor: Matrox Electronics Systems Ltd.
physical id: 3
bus info: pci@0000:07:03.0
version: 0a
width: 32 bits
clock: 33MHz
capabilities: pm vga_controller bus_master cap_list rom
configuration: driver=mgag200 latency=32 maxlatency=32 mingnt=16
resources: irq:19 memory:d0000000-d07fffff memory:de7fc000-de7fffff memory:de800000-deffffff memory:c0000-dffff
Memory information was 8GiB (crashing), upgraded to 24GiB today (no difference).
% free -m
total used free shared buff/cache available
Mem: 24080 601 1925 2 21554 23062
Swap: 0 0 0
nvidia-smi when working, processes field is obviously empty when it dies
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.57 Driver Version: 450.57 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Quadro P2200 Off | 00000000:06:00.0 Off | N/A |
| 49% 39C P0 30W / 75W | 296MiB / 5059MiB | 4% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 35952 C ...diaserver/Plex Transcoder 294MiB |
+-----------------------------------------------------------------------------+
This is what the log looks like when it struggles to play (converting 1080p to 720p any quality)
% tail -F Plex\ Media\ Server.log | grep "hardware\|died"
Plex Media Server.log:Jul 25, 2020 12:39:01.068 [0x7f079effd700] DEBUG - Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Plex Media Server.log:Jul 25, 2020 12:39:01.068 [0x7f079effd700] DEBUG - Codecs: hardware transcoding: testing API nvdec
Plex Media Server.log:Jul 25, 2020 12:39:01.289 [0x7f079effd700] DEBUG - Codecs: hardware transcoding: testing API nvenc
Plex Media Server.log:Jul 25, 2020 12:39:01.546 [0x7f079effd700] DEBUG - Codecs: hardware transcoding: testing API vaapi
Plex Media Server.log:Jul 25, 2020 12:39:01.547 [0x7f079effd700] DEBUG - Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Plex Media Server.log:Jul 25, 2020 12:39:01.547 [0x7f079effd700] DEBUG - Codecs: hardware transcoding: testing API nvdec
Plex Media Server.log:Jul 25, 2020 12:39:01.654 [0x7f07967fc700] DEBUG - TPU: hardware transcoding: using hardware decode accelerator nvdec
Plex Media Server.log:Jul 25, 2020 12:39:01.655 [0x7f07967fc700] DEBUG - TPU: hardware transcoding: zero-copy support present
Plex Media Server.log:Jul 25, 2020 12:39:01.655 [0x7f07967fc700] DEBUG - TPU: hardware transcoding: using zero-copy transcoding
Plex Media Server.log:Jul 25, 2020 12:39:01.655 [0x7f07967fc700] DEBUG - TPU: hardware transcoding: final decoder: nvdec, final encoder: nvenc
Have censored VERBOSE+DEBUG log snapshot of this crash available on request. Not 100% confident in my log censoring so I’m not comfortable publishing it publicly.