Docker transmission watch folder issue

my docker-compose.yml

---
version: "2.1"
services:
  transmission:
    image: lscr.io/linuxserver/transmission
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Bucharest
    volumes:
      - /mnt/stor/transmission:/config
      - /mnt/data:/media/Transmission
      - /mnt/data/torrents:/downloads
#      - /mnt/faststor/torrents_watch_folder:/watch
#      - /root/transmission/watch:/watch
      - /mnt/data/torrents/torrents_watched_folder:/watch
    ports:
      - 9091:9091
      - 51413:51413
      - 51413:51413/udp
    restart: unless-stopped

if I use this line

– /mnt/data/torrents/torrents_watched_folder:/watch

for the watch volume, I get the following error in the container log:

chown: changing ownership of ‘/watch’: Operation not permitted

and the content of the watch folder is not sensed.

if I issue a ls -al I get the following for torrents_watched_folder

drwxrwxr-x 2 1000 1000 4 Aug 26 22:59 torrents_watched_folder

if I use any of the commented lines above, I do not get the chown error for the watch folder and everything works (torrents are sensed and downloaded)
if I issue a ls -al on them I get:

drwxr-x— 2 1000 1000 4096 Aug 26 22:28 watch

So the permissions are more restrictive on the folder that works! and the user and group owners are the same.

One other difference between those 2 folders is that /root/transmission/watch is a local folder
but /mnt/data/torrents/torrents_watched_folder is a directory of a mounted nfs share.
the line for this share in /etc/fstab is the following:

192.168.1.50:/mnt/NasPool/main/Transmission /mnt/data nfs defaults 0 0

the TrueNas storage pool has owner user/group with uid/guid 1000/1000

I am probably missing something, but I don’t realize what… and I need to make transmission work with the nfs watch folder.
Does anyone have any insight about this issue?
Thank you in advance!

PS: in the container log I get also the following errors for the downloads folders (but it still works as expected - using the incomplete and complete subfolders):

chown: changing ownership of ‘/downloads’: Operation not permitted
chown: changing ownership of ‘/downloads/complete’: Operation not permitted
chown: changing ownership of ‘/downloads/incomplete’: Operation not permitted

Also if I restart the container, it will start and download the torrents that are found already in the watch folder.
In case it is useful in troubleshooting this, the full log looks like this:

s6-rc: info: service init-mods-package-install: stopping

s6-rc: info: service init-mods-package-install successfully stopped

s6-rc: info: service init-mods: stopping

s6-rc: info: service init-mods successfully stopped

s6-rc: info: service legacy-cont-init: stopping

s6-rc: info: service legacy-cont-init successfully stopped

s6-rc: info: service fix-attrs: stopping

s6-rc: info: service fix-attrs successfully stopped

s6-rc: info: service s6rc-oneshot-runner: stopping

s6-rc: info: service s6rc-oneshot-runner successfully stopped

s6-rc: info: service s6rc-oneshot-runner: starting

s6-rc: info: service s6rc-oneshot-runner successfully started

s6-rc: info: service fix-attrs: starting

s6-rc: info: service 00-legacy: starting

s6-rc: info: service 00-legacy successfully started

s6-rc: info: service fix-attrs successfully started

s6-rc: info: service legacy-cont-init: starting

cont-init: info: running /etc/cont-init.d/01-envfile

cont-init: info: /etc/cont-init.d/01-envfile exited 0

cont-init: info: running /etc/cont-init.d/01-migrations

[migrations] started

[migrations] no migrations found

cont-init: info: /etc/cont-init.d/01-migrations exited 0

cont-init: info: running /etc/cont-init.d/02-tamper-check

cont-init: info: /etc/cont-init.d/02-tamper-check exited 0

cont-init: info: running /etc/cont-init.d/10-adduser

usermod: no changes

-------------------------------------

          _         ()

         | |  ___   _    __

         | | / __| | |  /  \

         | | \__ \ | | | () |

         |_| |___/ |_|  \__/

Brought to you by linuxserver.io

-------------------------------------

To support LSIO projects visit:

https://www.linuxserver.io/donate/

-------------------------------------

GID/UID

-------------------------------------

User uid:    1000

User gid:    1000

-------------------------------------

cont-init: info: /etc/cont-init.d/10-adduser exited 0

cont-init: info: running /etc/cont-init.d/20-config

chown: changing ownership of '/downloads': Operation not permitted

chown: changing ownership of '/downloads/complete': Operation not permitted

chown: changing ownership of '/downloads/incomplete': Operation not permitted

chown: changing ownership of '/watch': Operation not permitted

cont-init: info: /etc/cont-init.d/20-config exited 1

cont-init: info: running /etc/cont-init.d/90-custom-folders

cont-init: info: /etc/cont-init.d/90-custom-folders exited 0

cont-init: info: running /etc/cont-init.d/99-custom-files

[custom-init] no custom files found exiting...

cont-init: info: /etc/cont-init.d/99-custom-files exited 0

s6-rc: info: service legacy-cont-init successfully started

s6-rc: info: service init-mods: starting

s6-rc: info: service init-mods successfully started

s6-rc: info: service init-mods-package-install: starting

s6-rc: info: service init-mods-package-install successfully started

s6-rc: info: service init-mods-end: starting

s6-rc: info: service init-mods-end successfully started

s6-rc: info: service init-services: starting

s6-rc: info: service init-services successfully started

s6-rc: info: service legacy-services: starting

services-up: info: copying legacy longrun cron (no readiness notification)

services-up: info: copying legacy longrun transmission (no readiness notification)

s6-rc: info: service legacy-services successfully started

s6-rc: info: service 99-ci-service-check: starting

[ls.io-init] done.

s6-rc: info: service 99-ci-service-check successfully started

[2022-08-27 00:18:27.238] Transmission 3.00 (bb6b5a062e) started (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/session.c:769)

[2022-08-27 00:18:27.238] RPC Server Serving RPC and Web requests on 0.0.0.0:9091/transmission/ (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/rpc-server.c:1243)

[2022-08-27 00:18:27.238] DHT Reusing old id (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/tr-dht.c:383)

[2022-08-27 00:18:27.238] DHT Bootstrapping from 166 IPv4 nodes (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/tr-dht.c:172)

[2022-08-27 00:18:27.238] Using settings from "/config" (/home/buildozer/aports/community/transmission/src/transmission-3.00/daemon/daemon.c:646)

[2022-08-27 00:18:27.238] Saved "/config/settings.json" (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/variant.c:1221)

[2022-08-27 00:18:27.239] Watching "/watch" for new .torrent files (/home/buildozer/aports/community/transmission/src/transmission-3.00/daemon/daemon.c:698)

[2022-08-27 00:18:27.239] Loaded 425 torrents (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/session.c:2170)

[2022-08-27 00:18:27.239] Port Forwarding (NAT-PMP) initnatpmp succeeded (0) (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/natpmp.c:73)

[2022-08-27 00:18:27.239] Port Forwarding (NAT-PMP) sendpublicaddressrequest succeeded (2) (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/natpmp.c:73)

[2022-08-27 00:18:27.239] Saved "/config/torrents/36e696a720aa28e97c3dcf642055c2e7ca1f2e5b.torrent" (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/variant.c:1221)

[2022-08-27 00:18:27.239] Parsing .torrent file successful "Harta fizica si politica a Europei.torrent" (/home/buildozer/aports/community/transmission/src/transmission-3.00/daemon/daemon.c:226)

[2022-08-27 00:18:34.239] Port Forwarding State changed from "Not forwarded" to "Starting" (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/port-forwarding.c:106)

[2022-08-27 00:18:34.239] Changed open file limit from 1048576 to 1024 (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/fdlimit.c:408)

[2022-08-27 00:18:34.239] web will verify tracker certs using envvar CURL_CA_BUNDLE: none (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/web.c:455)

[2022-08-27 00:18:34.239] web NB: this only works if you built against libcurl with openssl or gnutls, NOT nss (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/web.c:457)

[2022-08-27 00:18:34.239] web NB: invalid certs will show up as 'Could not connect to tracker' like many other errors (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/web.c:458)

[2022-08-27 00:18:34.239] Harta fizica si politica a Europei Queued for verification (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/verify.c:272)

[2022-08-27 00:18:34.239] Harta fizica si politica a Europei Verifying torrent (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/verify.c:220)

[2022-08-27 00:18:35.239] Port Forwarding State changed from "Starting" to "???" (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/port-forwarding.c:106)

[2022-08-27 00:18:47.238] Harta fizica si politica a Europei State changed from "Incomplete" to "Complete" (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/torrent.c:2302)

[2022-08-27 00:18:47.239] Harta fizica si politica a Europei moving "/media/Transmission/torrents/incomplete/Harta fizica si politica a Europei/524_GH C1 F14.jpg" to "/media/Transmission/torrents/complete/Harta fizica si politica a Europei/524_GH C1 F14.jpg" (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/torrent.c:3294)

[2022-08-27 00:18:47.239] Harta fizica si politica a Europei moving "/media/Transmission/torrents/incomplete/Harta fizica si politica a Europei/harta-politica-europa.jpg" to "/media/Transmission/torrents/complete/Harta fizica si politica a Europei/harta-politica-europa.jpg" (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/torrent.c:3294)

Searching further I saw there is a boolean option watch-dir-force-generic which could help in this case, but I couldn’t find a way to set it because the /config/settings.json file is overriten by the container…

I found the solution:
I can add the option watch-dir-force-generic to /config/settings.json but the container needs to be stopped when editing this file!

I hope someone else who is in this situation will find this, not lose half day like me trying to figure it out!

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.