- docker
- knowlege-backup
- media
- hosting

In preparation for rebuilding my home server with some parts sourced from eBay, I made a point to upgrade to the latest LTS version of Ubuntu. I was two versions behind, not yet out of support, but with the new hardware I was inspired to make the move.
In general, upgrades on fungi (my server) are fairly painless. All my services run in Docker containers, so the underlying OS has a limited role. At first, everything seemed to go smoothly. My services were running, I could access everything, and there did not appear to be any surprises.
A few days later, I got a note from my mother-in-law saying she was having trouble accessing some content I host. I run Plex and have a small router at their house that creates a WireGuard connection back to my server, letting their Roku stream content from my house. It has worked flawlessly for a long time, until suddenly it did not. I could not isolate the problem and was left saying, “I don’t know,” which never inspires confidence in your end-users.
I did some troubleshooting but could not find a clear reason for the issue. Then, I started running into playback issues while watching a movie at home. I quickly logged into fungi from my phone, and BINGO htop
showed Plex transcoding was chewing up my CPU. This was strange, because I have an older GPU installed specifically to avoid this.
It did not take long to figure out that during one of the major version upgrades, Ubuntu had changed the group ownership of the video card device. Plex could see the GPU but could not use it. A quick usermod -aG video plexmediaserver && docker restart plexmediaserver
later, CPU usage dropped to nothing, and I could see my GPU calmly sipping on MP4 frames.
I am a little annoyed that Plex gave no indication anything was wrong. I had checked the transcoding settings, and the GPU was selected and nothing suggested it was unusable. I would have preferred a loud failure with an error message about an inaccessible transcoding device over silent fallback. But I also know the Plex team puts a lot of effort into the whole “just work, dammit” approach, which sometimes leads to these kinds of tradeoffs.