linuxserver / docker-radarr

GNU General Public License v3.0
608 stars 103 forks source link

Unable to load root folders #228

Open fahadshery opened 2 months ago

fahadshery commented 2 months ago

Is there an existing issue for this?

Current Behavior

I can see all my movies INSIDE the container. I can also write to the /movies folder from INSIDE the container. But I am unable to import my existing movies. I have been using the same movies folder for few years without any issues. This is what I see:

image

and this is the error I see when try and import:

image

Expected Behavior

Being able to import my existing movies.

Steps To Reproduce

Just spin up the docker and portainer. Then setup using docker compose

Environment

- OS:Ubuntu
- How docker service was installed:
Official documentation

CPU architecture

x86-64

Docker creation

---
services:
  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /home/user/radarr/config:/config
      - /mnt/nas/entertainment/movies:/movies #optional
      - /mnt/nas/transmission/downloads:/downloads #optional
    ports:
      - 7878:7878
    restart: unless-stopped

Container logs

{"message":"One or more errors occurred. (Resource temporarily unavailabl)","description":"System.AggregateException: One or more errors occurred. (Resource temporarily unavailabl)\n ---> System.InvalidOperationException: Resource temporarily unavailabl\n ---> Mono.Unix.UnixIOException: Resource temporarily unavailabl [EWOULDBLOCK].\n --- End of inner exception stack trace ---\n at Mono.Unix.UnixDriveInfo.Refresh(Boolean throwException)\n at Mono.Unix.UnixDriveInfo.Refresh()\n at Mono.Unix.UnixDriveInfo.get_AvailableFreeSpace()\n at NzbDrone.Mono.Disk.ProcMount.get_AvailableFreeSpace() in ./Radarr.Mono/Disk/ProcMount.cs:line 23\n at NzbDrone.Mono.Disk.DiskProvider.GetAvailableSpace(String path) in ./Radarr.Mono/Disk/DiskProvider.cs:line 53\n at NzbDrone.Core.RootFolders.RootFolderService.<>c__DisplayClass15_0.<GetDetails>b__0() in ./Radarr.Core/RootFolders/RootFolderService.cs:line 225\n at System.Threading.Tasks.Task.InnerInvoke()\n at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)\n at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)\n--- End of stack trace from previous location ---\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)\n --- End of inner exception stack trace ---\n at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\n at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)\n at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout)\n at NzbDrone.Core.RootFolders.RootFolderService.GetDetails(RootFolder rootFolder, Dictionary`2 moviePaths, Boolean timeout) in ./Radarr.Core/RootFolders/RootFolderService.cs:line 220\n at NzbDrone.Core.RootFolders.RootFolderService.Add(RootFolder rootFolder) in ./Radarr.Core/RootFolders/RootFolderService.cs:line 125\n at Radarr.Api.V3.RootFolders.RootFolderController.CreateRootFolder(RootFolderResource rootFolderResource) in ./Radarr.Api.V3/RootFolders/RootFolderController.cs:line 56\n at lambda_method72(Closure , Object , Object[] )\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()\n--- End of stack trace from previous location ---\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\n--- End of stack trace from previous location ---\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n at Radarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/BufferingMiddleware.cs:line 27\n at Radarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/IfModifiedMiddleware.cs:line 40\n at Radarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/CacheHeaderMiddleware.cs:line 32\n at Radarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/StartingUpMiddleware.cs:line 37\n at Radarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/UrlBaseMiddleware.cs:line 26\n at Radarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Radarr.Http/Middleware/VersionMiddleware.cs:line 28\n at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)\n at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)"}
github-actions[bot] commented 2 months ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

aptalca commented 2 months ago

I can also write to the /movies folder from INSIDE the container.

You're likely exec'ing into the container as root, but radarr runs as user abc inside, which is mapped to the PUID/PGID you set in docker arguments

fahadshery commented 2 months ago

You're likely exec'ing into the container as root, but radarr runs as user abc inside, which is mapped to the PUID/PGID you set in docker arguments

Yes and that PUID and PGID is mapped to my user which can read/write/execute in the /movies folder.

Here is how I am mounting the cifs share: //192.168.10.90/media /mnt/nas/media cifs uid=1000,gid=1000,credentials=/home/myuser/.smbcreds 0 0

Mafyuh commented 2 months ago

I am having same exact issue. everything still works, adding new movies, importing from download client, literally everything besides seeing root folders and importing movies manually, ive tried downgrading versions the past few weeks, and still the same. I can delete movies still from the ui. I only set up this VM about 6 weeks ago and everything was fine then. I guess i havent tried to manually import since then so I'm not sure when it started.

My fstab for mounting: //ip/share-name/Media /data/media cifs username=username,password=password,uid=1000,gid=1000,auto,nofail 0 0 Ive tried re-running some permissions commands: sudo chown -R $USER:$USER /data sudo chmod -R a=,a+rX,u+w,g+w /data My PUID/PGID are set same as above docker compose. I'm just mapping /data:/data

I am getting the same exact error message as well.

Docker version 26.0.1, build d260a54 Ubuntu 22.04.4

EDIT: Updated to Ubuntu 24 with docker version 26.1.0 and its fixd

alexneth commented 1 month ago

I have also encountered this issue. Updating to Ubuntu 24 and docker 26.1.0 like mentioned by Mafyuh above, did not work for me. The only way I managed to get this to work was to set both PUID and PGID to 0.

thespad commented 1 month ago

That means you have permissions issues, which you're bypassing by having radarr run as root, which we neither recommend, or support.

LinuxServer-CI commented 2 weeks ago

This issue has been automatically marked as stale because it has not had recent activity. This might be due to missing feedback from OP. It will be closed if no further activity occurs. Thank you for your contributions.