"EAE timeout! EAE not running, or wrong folder?" on Docker images using NFS

Server Version#: 1.21.1.3830
Docker Image#: linuxserver/plex & plexinc/pms-docker:plexpass
Player Version#: Web

I’m running Plex on an Ubuntu host (20.04 LTS server) running the linuxserver/plex docker image with media library stored on an NFS network mount (Synology box). Recently on new content I’m getting this common error
[Transcoder] [eac3_eae @ 0x22173c0] EAE timeout! EAE not running, or wrong folder? Could not read '/tmp/pms-2926bccf-f43d-4f14-8607-f5836084e658/EasyAudioEncoder/Convert to WAV (to 8ch or less)/8ctyiea5iufon49t9n74vjg8_816-0-2.wav'

As far as I can tell, this error is only occurring on new content added to my library.

Here is my troubleshooting so far:

increasing max_user_watches on host

dockerhost:~$ sudo sysctl -p
fs.inotify.max_user_watches = 32768

ensuring version 4 on nfs mount

10.0.10.42:/volume1/Entertainment /home/user/nfs/Entertainment nfs sec=sys,intr,vers=4,rw,auto,nofail 0 0

use plexinc/pms-docker container instead

Same issue which is really confusing me

use transcoding directory outside of container and ensuring r/rw permissions

dockerhost:~$ ls -alh | grep pms
drwxr-xr-x  3 user             user 4.0K Dec 22 17:25 plex_config
drwxrwxrwx  3 user             user 4.0K Dec 31 09:34 plex_transcode

ensuring adequate disk space

dockerhost:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                                16G     0   16G   0% /dev
tmpfs                              3.2G  2.6M  3.2G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  438G  299G  118G  72% /
tmpfs                               16G     0   16G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                               16G     0   16G   0% /sys/fs/cgroup
/dev/nvme0n1p2                     976M  199M  711M  22% /boot
/dev/nvme0n1p1                     511M  7.8M  504M   2% /boot/efi
/dev/loop0                          56M   56M     0 100% /snap/core18/1932
10.0.10.42:/volume1/Entertainment    21T   19T  2.5T  89% /home/user/nfs/Entertainment
tmpfs                              3.2G     0  3.2G   0% /run/user/1000

I’ve also tried disabling transcoding, mounting the the hosts /tmp directory.

My initial docker container setup was (prior to mounting /tmp & plex_transcode directories

docker run -d \
  --name=plex \
  --net=host \
  -e PUID=1000 \
  -e PGID=1000 \
  -e VERSION=docker \
  -e UMASK_SET=022 \
  -v /home/user/plex_config:/config \
  -v /home/user/nfs/Entertainment:/tv \
  --restart unless-stopped \
  linuxserver/plex

I’m not sure what other troubleshooting to do. This error is really common, I’ve looked at dozens of posts but still haven’t found a solution. Any tips would be appreciated.

Get the total number of directories in use for all media (find xxxx -type d -print | wc -l)

Does it exceed 8192 ?

@ChuckPa, within the NFS mount yes (23826) but for my plex library it is ~7300 directories. I have bumped max_user_watches to 32768 on the docker host.

You adjusted the max_user_watches on the host where the docker resides?
(adjusting inside the container won’t change the underlying host capacity)

You adjusted the max_user_watches on the host where the docker resides?

Yes @ChuckPa, I adjusted the max_user_watches on the docker host, not the docker container.

dockerhost:~$ sudo sysctl -p
fs.inotify.max_user_watches = 32768

How where they mounted? NFSv3 or NFSv4 ?

NFSv3 requires the additional local_lock=posix in the /etc/fstab mount options on the host.

I appreciate your help @ChuckPa but every question you’ve asked has been covered in my initial post. I spent a long time on this forum troubleshooting before deciding to post yet another EAE timeout! question here. But to answer your question, I’m using NFSv4

10.0.10.42:/volume1/Entertainment /home/user/nfs/Entertainment nfs sec=sys,intr,vers=4,rw,auto,nofail 0 0

Again, I do really appreciate your help. My question is, apart from all the troubleshooting I have described in my initial post, what else can I try.

If the /config is on the host drives,
and using the default transcoder temp directory,
it ‘just works’.

There is something in your statement about 'mounting /tmp & plex_transcode directories` which isn’t supporting the needed file locking.

If you undid that change, does functionality return?

I undid the mounting /tmp & plex_transcode directories in my container as it wasn’t helping. That was just one of the many things I was trying.

This is the full error from my console. Can I make this log more verbose to get more context around the error?

[Transcoder] [eac3_eae @ 0x269e280] EAE timeout! EAE not running, or wrong folder? Could not read '/tmp/pms-2926bccf-f43d-4f14-8607-f5836084e658/EasyAudioEncoder/Convert to WAV (to 8ch or less)/7sjwdtgwixah4r1rxnbmerbq_3882-0-19.wav'
[Transcoder] [eac3_eae @ 0x269e280] error reading output
[Transcoder] Error while decoding stream #0:1: Input/output error

That’s about all you will get which is of any use.

I’ve never mucked around with mounting inside a container. ( but I don’t use docker unless I need to anyway )

Can you edit the container spec and

  1. Add the container->host map
  2. Mount the directory on the host.

I ask this because, IF I’m understanding correctly, what that version of ‘mount’ supports. Theoretically should be ok but stranger things have been known to happen.

No matter what’s going on,

[Transcoder] [eac3_eae @ 0x269e280] EAE timeout! EAE not running, or wrong folder? Could not read '/tmp/pms-2926bccf-f43d-4f14-8607-f5836084e658/EasyAudioEncoder/Convert to WAV (to 8ch or less)/7sjwdtgwixah4r1rxnbmerbq_3882-0-19.wav'
[Transcoder] [eac3_eae @ 0x269e280] error reading output
[Transcoder] Error while decoding stream #0:1: Input/output error

happens when PMS goes to open the file, expecting to find it -OR- it locked because EAE isn’t done yet . In this case, it’s not finding either

I’m going to need to see the DEBUG log files ZIP which captures this.

There must be something upstream being overlooked.

Here is a server log containing the EAE timeout errors in Plex Media Server.1.log

there is nothing showing here, let’s cross fingers and hope verbose transcoder logs tell us something:

[chuck@lizum ~/bin.503]$ cat set-transcoder-verbose
#!/bin/sh

if [ "x$2" = "x" ]; then
  echo Usage:  $0 host-or-ip x-plex-token
  exit 1
fi

curl http://$1:32400/:/prefs/set\?TranscoderLogLevel=verbose\&X-Plex-Token=$2
[chuck@lizum ~/bin.504]$ cat set-transcoder-debug
#!/bin/sh
curl 'http://192.168.0.21:32400/:/prefs/set?TranscoderLogLevel=debug&X-Plex-Token=XXXXXXXX'
[chuck@lizum ~/bin.505]$

Cheers @ChuckPa, here is a verbose log while trying to play one of the videos that doesn’t work

Thanks for all your help

No no. I don’t want VERBOSE PMS logging.

Normal DEBUG logging for PMS; VERBOSE logging for the transcoder only.

Use the set-transcoder-verbose script I provided above.

The file you provided is PMS-Verbose, Transcoder-Debug.
We need flip that around.

OK, cheers. Did I do this right? -> https://u.pcloud.link/publink/show?code=XZCvmQXZ1CvCdGyJ2HzPIrfs0xYU1pNMP3jV

Close enough.

Now time for the ugly part.

  1. Stop Plex
  2. Get into the shell
  3. drill down into the Codecs directory
  4. Find and remove the EasyAccessEncoder process.

(I don’t trust it at this point).

  1. Start Plex
  2. Let it download the EAE at first use (takes an extra second or two)
  3. Observe results.

Happy new year! Unfortunately that didn’t fix the issue. Is it possible the codec the videos were encoded with isn’t compatible with Plex’s current transforming? What’s weird is that the video files in question streams on a firestick but not on a laptop or android client. Is it possible that transcoding isn’t required for the firestick? However I would have thought there would be a more obvious error if this was the case ¯\_(ツ)_/¯

Are you sure your temporary folder for transcodings is not pointing to a folder inside the container that is actualy mapped to a nfs baked volume?

You might want to add a bind-mount for the transcoding folder, e.g. -v /transcode:/transcodeand then set the temprary folder for transcoding in the extended options of settings → transcoding to /transcode as well. If you point it to a folder outside a volume mount inside the container, you will end up writting the data in the copy-on-write layer of the storage driver your docker installation uses (which typicaly is overlay2 these days) - I am not sure which of docker’s storage drivers actualy trigger inotify events.

Does that make sense?

Btw. gregology, I like that you call a container what it is: a container :slight_smile: It is so painful to read people calling them “dockers”.

@kopfpilot, I tried adding a bind-mount for the transcoding directory on the Docker host (not within the nfs mount) but it’s still having the same issue :pensive: I tried hosting the videos that were having problems directly on the host machine instead of the NFS mount but I’m having the same issue.

@ChuckPa, I’ve tried removing the EasyAccessEncoder Codecs multiple times with no luck.

Thanks for your help team. Are there any issues downgrading to a previous version of Plex? This is new behaviour so downgrading might be the answer