ShokoAnime / ShokoServer

Repository for Shoko Server.
http://shokoanime.com/shoko-server/
MIT License
374 stars 74 forks source link

Crash when attempting to index an open read/only file #1124

Open CrimzonCoder opened 2 months ago

CrimzonCoder commented 2 months ago

## VERSION INFORMATION

Server Version: 4.2.2.0

Desktop Version: N/A

LOG FILE

13:45:01| ImportFolderWatcher: /import/ --- File /import/AnimeFile.mkv is Read-Only. Attempting to unmark ... (x 100+) 13:45:01| ImportFolderWatcher: /import/ --- File/import/AnimeFile.mkv is Read-Only. Attempting to unmark 13:45:01| ImportFolderWatcher: /import/ --- File /import/AnimeFile.mkv is Read-Only. Attempting to unmark at Shoko.Server.Utilities.FileSystemWatcher.RecoveringFileSystemWatcher.CanAccessFile(System.String, System.Exception ByRef) at Shoko.Server.Utilities.FileSystemWatcher.RecoveringFileSystemWatcher.CanAccessFile(System.String, System.Exception ByRef) .... (x 100+) at Shoko.Server.Utilities.FileSystemWatcher.RecoveringFileSystemWatcher.CanAccessFile(System.String, System.Exception ByRef) at Shoko.Server.Utilities.FileSystemWatcher.RecoveringFileSystemWatcher.CanAccessFile(System.String, System.Exception ByRef) at Shoko.Server.Utilities.FileSystemWatcher.RecoveringFileSystemWatcher.IsLocked(System.String) at Shoko.Server.Utilities.FileSystemWatcher.RecoveringFileSystemWatcher.b__25_0(System.Object) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread) at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart() Aborted

DESCRIPTION

File may be non-readable as well as it is likely being copied into place when the server tries to process it. Later, when I notice the server has crashed, the file actually is readable so I suspect it is an open /inaccessible file issue.

Regardless, server should probably give up rather than overflowing the stack.

STEPS TO REPRODUCE

Attempt to import an inaccesible file from the import directory into the library.

da3dsoul commented 2 months ago

It's supposed to give up and not crash