[Errno 5] I/O error

If you can include them via text with backtics, that's much easier to read.

Permissions look super good.

In that same window, can you run ffprobe on the file as well in the bazarr container? That seems to be the command failing.

docker exec -it bazarr bash
ffprobe /data/tvshows_shared/Game of Thrones/Season 06/Game of Thrones (2011) - S06E01 - The Red Woman [HDTV-1080p].mkv

If that does error, share the output. If it works though, that seems back to something with the mapping maybe? We've been through all the permisison and your container can see the mergerfs and rclone mount properly and read the files as tested by the head command.

root@ec3f084f5d05:/#ffprobe '/data/tvshows_shared/Game of Thrones/Season 06/Game of Thrones (2011) - S06E01 - The Red Woman [HDTV-1080p].mkv'
ffprobe version 4.4.1 Copyright (c) 2007-2021 the FFmpeg developers
  built with gcc 10.3.1 (Alpine 10.3.1_git20210424) 20210424
  configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-libdav1d --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --enable-libsrt --enable-libssh --enable-libvidstab --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --enable-vulkan --enable-libsoxr --enable-libwebp --enable-libaom --disable-debug
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, matroska,webm, from '/data/tvshows_shared/Game of Thrones/Season 06/Game of Thrones (2011) - S06E01 - The Red Woman [HDTV-1080p].mkv':
  Metadata:
    title           : Game.of.Thrones.S06E01.The.Red.Woman.1080p.BluRay.10bit.HEVC.6CH-MkvCage.ws
    ENCODER         : Lavf58.45.100
  Duration: 00:50:04.20, start: 0.000000, bitrate: 3161 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 116.116000
      Metadata:
        title           :  Chapter 1
    Chapter #0:1: start 116.116000, end 574.616000
      Metadata:
        title           :  Chapter 2
    Chapter #0:2: start 574.616000, end 1145.603000
      Metadata:
        title           :  Chapter 3
    Chapter #0:3: start 1145.603000, end 1742.366000
      Metadata:
        title           :  Chapter 4
    Chapter #0:4: start 1742.366000, end 2132.464000
      Metadata:
        title           :  Chapter 5
    Chapter #0:5: start 2132.464000, end 2482.063000
      Metadata:
        title           :  Chapter 6
    Chapter #0:6: start 2482.063000, end 2922.336000
      Metadata:
        title           :  Chapter 7
    Chapter #0:7: start 2922.336000, end 3004.203000
      Metadata:
        title           :  Chapter 8
  Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
    Metadata:
      BPS-eng         : 2903311
      DURATION-eng    : 00:50:04.166000000
      NUMBER_OF_FRAMES-eng: 72028
      NUMBER_OF_BYTES-eng: 1090253703
      _STATISTICS_WRITING_APP-eng: mkvmerge v31.0.0 ('Dolores In A Shoestand') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2019-03-15 09:18:38
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      DURATION        : 00:50:04.165000000
  Stream #0:1(eng): Audio: aac (HE-AAC), 48000 Hz, 5.1, fltp (default)
    Metadata:
      BPS-eng         : 256000
      DURATION-eng    : 00:50:04.160000000
      NUMBER_OF_FRAMES-eng: 70410
      NUMBER_OF_BYTES-eng: 96133121
      _STATISTICS_WRITING_APP-eng: mkvmerge v31.0.0 ('Dolores In A Shoestand') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2019-03-15 09:18:38
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      DURATION        : 00:50:04.202000000
root@ec3f084f5d05:/#

So at that point, we've ruled out:

  • permissions on both mergerfs / rclone
  • reading the file on both mergerfs / rclone
  • bazarr container works with ffprobe'ing the file

That is my understanding of what Bazarr is doing to get to the file and pulling out the info.

Doing any path mappings or anything along those lines are the issue seems to be very specific to Bazarr?

I use this one:

  bazarr:
   image: lscr.io/linuxserver/bazarr:latest

for mine.

Yes, I use linuxserver/bazarr as well. But the owner of bazarr refuses to help me. He says: "error indicates there's an issue with your drives, can't help you".

Hmm. I might offer to him the output of the ffprobe from the container and see if he/she has a different approach as that's as far as my Bazarr knowledge goes.

I'm not sure what else to check as we really went through the bottom up and that all looks good to me.

Well, thanks for your time. I contacted him again.

This exception is triggered by a simple file open in Python. It's the same call used by thousands of users and that come from the original Subliminal module: subliminal/utils.py at master ยท Diaoul/subliminal ยท GitHub

If Python state that it's an I/O error, it's clearly because the operating system is telling it that it is. There's no interpretation and nothing to be fixed in Bazarr here.

I had the OP open a docker shell as the user and permissions are fine, heading the file is fine and ffprobing the file is fine so the container can see the file perfect as it can open it by the output above.

The error seems to come form Bazarr so the file can be opened unless something I'm doing in the docker testing is wrong as all the screenshots are above along with the output.

I removed the permission commands from the rclone systemd like gid, uid, dir perms file perms and umask. Now the folders shouldn't specific permissions and owner from rclone. If I manually do chmod 777 nothing changes. The folder with all the files have chmod 755 and when I run chmod -R 777 it's still 755.

Makes me think. Are those permissions even real? Maybe it said 777 before but it's not.

You have screenshots/logs that show the permissions.
You ran the ffprobe from the docker and it worked.

Permissions are fine in the docker.

If it were a permission issue, it would have raised a PermissionError exception: Built-in Exceptions โ€” Python 3.10.5 documentation

The OP run all those command as root inside the docker container and not as user abc as it should for a LSIO image.

That looks to be what was done from here:

And that ffprobe worked from the docker so I'm not sure what I'm missing or not asking as I'm not a great docker user by any means. I'm just trying to figure out what I've missed asking as the file can be ffrpobe'd which would normally tell me permissions/file itself is but the app is tossing an error for some odd reason.

1 Like

I run everything as root so it makes no difference. Running as another user is not possible. I/o errors are commonly caused by permission issues just so you know.

The user run the test using root. It should have been abc user that is the one that is used to run Bazarr with the supplied PUDI/PGID.

sudo -u abc ffprobe path

No it's not. I run bazarr as root. I don't even have a user named abc

Goddamm... this user is inside the LSIO container and it's by default. You can't change that... I suggets you do some reading about docker and LSIO images.

Oh that make sense as that's how the container is setup.

You do as it's how the container is setup.

docker exec --user abc -it bazarr bash
bash: /root/.bashrc: Permission denied
abc@361822c7647b:/$ id
uid=1000(abc) gid=1000(users) groups=1000(users)
abc@361822c7647b:/$

My own docker runs as a normal user, but inside the user is abc / 1000

  bazarr:
   image: lscr.io/linuxserver/bazarr:latest
   container_name: bazarr
   environment:
     - PUID=1000
     - PGID=1000
     - TZ=America/New_York

I run all my stuff as UID 1000 on my system so I never hit any issues.

So adjust the command as the right user and we should see the issue:

docker exec --user abc -it bazarr bash
ls -al /data/tvshows_shared/Game of Thrones/Season 06/Game of Thrones (2011) - S06E01 - The Red Woman [HDTV-1080p].mkv
ffprobe /data/tvshows_shared/Game of Thrones/Season 06/Game of Thrones (2011) - S06E01 - The Red Woman [HDTV-1080p].mkv

I'll assume you can't ls it.