Sonnar and Radarr not help with Root Folders

Sonarr version 4.0.3.1413
Radarr Version 5.4.6.8723
**Mono version I created it within a portainer using the LMDS script.
Debug logs
when I try and add my mount points for Sonarr and Radarr to a unraid share, I am getting two errors.
for Sonarr I am getting "Unable to add root folder Folder ‘/tv/’ is not writable by user ‘abc’ " and for
Radarr “Unable to load root folders”

but for both I am able to go to the mount points and see all the contents and browse them with no issues.

Description of issue:
I had to rebuild my Torrent server a few weeks ago. using the same procedure / settings as before
I have created a mounting point /mnt/media within the linux server, and mount this via fstab

//192.168.1.9/media /mnt/data cifs vers=3.0,credentials=/etc/.unraidsmscredentials,file_mode=0777,dir_mode=0777,nobrl,uid=1000,gid=1000 0 0

then using the portainer, I have set up a mounting point for each application, one point to my TV shows and the other to my movies.

Sonarr: /mnt/data/tvshows /tv
Radarr: /mnt/data/movies /movies

I am able to go into my mounting point /mnt/data and see all the folders that resides in that folder share. where I can create / delete and rename with no issues

but when I go into Sonarr or Radarr, I am able to browse to my mount points and click on then, but then I get the above errors.

and yes before anyone say, I have opened up my permissions to 0777 to all my mounting points, just for troubleshooting and once I have this issue resolve then I will go back and lock them down.

What am I missing ?

Mono.Unix.UnixIOException: Resource temporarily unavailabl [EWOULDBLOCK].

— End of inner exception stack trace —
at Mono.Unix.UnixDriveInfo.Refresh(Boolean throwException)
at NzbDrone.Mono.Disk.ProcMount.get_AvailableFreeSpace() in ./Radarr.Mono/Disk/ProcMount.cs:line 23
at NzbDrone.Mono.Disk.DiskProvider.GetAvailableSpace(String path)
at NzbDrone.Core.RootFolders.RootFolderService.<>c__DisplayClass15_0.b__0() in ./Radarr.Core/RootFolders/RootFolderService.cs:line 225
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
— End of stack trace from previous location —
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)

2024-04-14 16:16:35.4|Debug|Api|[GET] /api/v3/rootFolder: 200.OK (35 ms)
2024-04-14 16:16:36.1|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:36.1|Debug|Api|[GET] /api/v3/health: 200.OK (0 ms)
2024-04-14 16:16:43.5|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:43.5|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:43.5|Fatal|RadarrErrorPipeline|Request Failed. GET /api/v3/rootFolder/2

[v5.4.6.8723] System.InvalidOperationException: Resource temporarily unavailabl
—> Mono.Unix.UnixIOException: Resource temporarily unavailabl [EWOULDBLOCK].
— End of inner exception stack trace —
at Mono.Unix.UnixDriveInfo.Refresh(Boolean throwException)
at NzbDrone.Mono.Disk.ProcMount.get_AvailableFreeSpace() in ./Radarr.Mono/Disk/ProcMount.cs:line 23
at NzbDrone.Mono.Disk.DiskProvider.GetAvailableSpace(String path)
at NzbDrone.Core.RootFolders.RootFolderService.<>c__DisplayClass15_0.b__0() in ./Radarr.Core/RootFolders/RootFolderService.cs:line 225
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
— End of stack trace from previous location —
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)

2024-04-14 16:16:43.5|Debug|Api|[GET] /api/v3/rootFolder/2?timeout=false: 500.InternalServerError (36 ms)
2024-04-14 16:16:57.6|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:57.6|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:57.6|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:57.6|Debug|Api|[GET] /api/v3/health: 200.OK (1 ms)
2024-04-14 16:16:57.6|Debug|Api|[GET] /api/v3/system/status: 200.OK (1 ms)
2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.8|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|DiskProvider|Failed to fetch drive info for mount point: /movies

[v5.4.6.8723] System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
at System.IO.DriveInfo.get_DriveFormat()
at NzbDrone.Mono.Disk.DiskProvider.b__16_0(DriveInfo d) in ./Radarr.Mono/Disk/DiskProvider.cs:line 197

2024-04-14 16:16:57.9|Debug|Api|[GET] /api/v3/diskspace: 200.OK (282 ms)
2024-04-14 16:16:58.8|Debug|Radarr.Http.Authentication.ApiKeyAuthenticationHandler|AuthenticationScheme: API was successfully authenticated.
2024-04-14 16:16:58.8|Debug|Api|[GET] /api/v3/log/file: 200.OK (5 ms)
2024-04-14 16:17:00.9|Info|Radarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.

Just commenting to follow

I dont recall needing to rebuild my containers or anything, but am getting the same errors as OP reported.

I dont use mine often but i first noticed the issue after my newshost and VPN ran out.

After i renewed it i noticed my Usenet and Torrent started complaining that i had no more space on my shares. When i looked i still had over 10TB free.

As OP stated all my mounts are working and reachable, i can play media from them and see them from Sonnar and Radarr but when i tried to remount them get the Unable to load root folders error.

Found a solution for my issue.

Looks like there was a bug in the Linux kernel i was using on my docker host (5.15.0 - something). After updating to the latest kernel 6.8.7-060807 the issue was resolved.

It was the “nobrl” for me, I’d just upgraded all my containers when this started so something must’ve changed to require it. Might be a good thing though…I dont know about you but for me that was just a hack to get calibre working, this might force me to use an ebook management tool that’s a better fit for my environment. Either way, unmounting getting rid of the “nobrl”, and remounting seems to have fixed it for me.

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