Commit Graph

136 Commits

Author SHA1 Message Date
Jacob Casper e67d8ce077 Don't let permission denied kill library scans
I have a single `./Movies` directory that contains symlinks to many
other directories, some of which are in shared paths. Other daemons
sometimes overwrite permissions on these paths and prevent Jellyfin from
being able to scan. Because this exception is unhandled within a LINQ
statement it can randomly kill the metadata refresh for my entire Movies
library.

Running with this patch has allowed me to at least add + scan for
movies in directories that Jellyfin can currently access and gives me
some notification of the symlinks failing due to permissions errors.

(cherry picked from commit 193cc8690a60bc2a432df14d256f00371e055c90)
2022-05-09 10:49:52 -05:00
Cody Robibero 1b3e56bae3 Split DirectoryExists and FileExists 2022-03-02 19:55:44 -07:00
Cody Robibero fc5c6c0404 Use IFileSystem 2022-02-28 17:14:33 -07:00
Bond_009 1c14c86b20 Fix some warnings 2022-02-14 14:46:04 +01:00
Cody Robibero 7bfc6b5679 Remove more warnings 2021-12-27 07:38:06 -07:00
Bond_009 ea8f40e84a More cleanup 2021-12-27 14:20:05 +00:00
Bond_009 474b035d99 Fix some warnings 2021-11-15 15:57:07 +01:00
Bond_009 1d19a5be61 Fix some warnings
down to 580
2021-11-09 22:29:33 +01:00
Bond_009 5726535a26 Fix some warnings
609 left
2021-11-09 13:14:31 +01:00
Bond_009 4dfb7b18ae Add some docs and tests 2021-11-07 22:32:08 +01:00
Bond_009 0f52896691 Fix UnauthorizedAccessException in GetDrives
```
[15:01:24] [ERR] [55] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /Environment/Drives.
System.UnauthorizedAccessException: Access to the path is denied.
 ---> System.IO.IOException: Operation not permitted
   --- End of inner exception stack trace ---
   at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
   at System.IO.DriveInfo.get_TotalSize()
   at Emby.Server.Implementations.IO.ManagedFileSystem.<>c.<GetDrives>b__32_0(DriveInfo d) in /home/bond/dev/jellyfin/Emby.Server.Implementations/IO/ManagedFileSystem.cs:line 583
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.ToList()
   at Emby.Server.Implementations.IO.ManagedFileSystem.GetDrives() in /home/bond/dev/jellyfin/Emby.Server.Implementations/IO/ManagedFileSystem.cs:line 583
   at Jellyfin.Api.Controllers.EnvironmentController.GetDrives() in /home/bond/dev/jellyfin/Jellyfin.Api/Controllers/EnvironmentController.cs:line 153
   at lambda_method559(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
```
2021-11-07 15:33:39 +01:00
Patrick Barron c09ef74b51 Fix warnings in IO 2021-10-03 21:41:22 -04:00
Bond_009 a4eede29ab Use RandomAccess instead of a FileStream where it makes sense 2021-09-25 20:17:12 +02:00
Fernando Fernández 3d0b1ccae6
Remove all unused usings 2021-09-06 21:15:30 +02:00
Claus Vium 74fef6c05b
Merge pull request #6177 from Bond-009/async
Use async FileStreams where it makes sense
2021-09-06 13:55:34 +02:00
Bond_009 637e86478f Fix some warnings 2021-09-03 19:32:11 +02:00
Bond_009 e3dac4fda2 Use async FileStreams where it makes sense 2021-09-02 14:02:04 +02:00
Bond_009 8528e9bddb Improve platform checks 2021-07-12 20:21:51 +02:00
Bond_009 6f8ccab788 Move non-jellyfin extensions to separate project 2021-06-19 18:04:46 +02:00
cvium 42a2cc1747 Remove some unnecessary allocations 2021-05-24 00:30:41 +02:00
Bond_009 7e8428e588 Enable nullable reference types for Emby.Server.Implementations 2021-05-20 22:48:53 +02:00
Bond_009 c608d5104d Fix scanning 2021-05-01 15:56:16 +02:00
Bond_009 33327aa1a9 Improve fast path of ManagedFileSystem.GetValidFilename
|                      Method |          Data |        Mean |     Error |    StdDev |      Median |  Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------------------- |-------------- |------------:|----------:|----------:|------------:|-------:|------:|------:|----------:|
|       GetValidFilenameBench |    AC/DCKD/A |    52.29 ns |  0.537 ns |  0.448 ns |    52.35 ns | 0.0255 |     - |     - |      80 B |
|    GetValidFilenameOldBench |    AC/DCKD/A |    86.68 ns |  1.205 ns |  1.127 ns |    86.33 ns | 0.0587 |     - |     - |     184 B |
|    GetValidFilenameWinBench |    AC/DCKD/A |   448.55 ns |  1.228 ns |  1.088 ns |   448.33 ns | 0.0505 |     - |     - |     160 B |
| GetValidFilenameOldWinBench |    AC/DCKD/A |   865.21 ns |  5.734 ns |  5.083 ns |   866.60 ns | 0.0839 |     - |     - |     264 B |
|       GetValidFilenameBench | ValidFileName |    16.00 ns |  0.234 ns |  0.207 ns |    16.02 ns | 0.0102 |     - |     - |      32 B |
|    GetValidFilenameOldBench | ValidFileName |   100.66 ns |  1.255 ns |  1.174 ns |   101.21 ns | 0.0587 |     - |     - |     184 B |
|    GetValidFilenameWinBench | ValidFileName |   116.60 ns |  1.624 ns |  1.519 ns |   116.88 ns | 0.0356 |     - |     - |     112 B |
| GetValidFilenameOldWinBench | ValidFileName | 1,052.66 ns | 18.077 ns | 33.056 ns | 1,037.25 ns | 0.0839 |     - |     - |     264 B |
2021-04-22 12:31:47 +02:00
Bond_009 81209258ab ManagedFileSystem: Rewrite GetValidFilename and more improvements 2021-04-22 03:11:21 +02:00
Claus Vium f99237cf9b
Update Emby.Server.Implementations/IO/ManagedFileSystem.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2021-04-10 00:16:37 +02:00
cvium 1a3352003d don't die on dangling symlinks 2021-04-09 23:02:36 +02:00
Bond_009 c533b20496 Remove ManagedFileSystem.IsRootPath
`Path.IsPathRooted` should be used instead
2021-04-01 19:39:00 +02:00
crobibero 8d902478a0 Don't skip hidden files 2021-02-02 07:14:11 -07:00
Gary Wilber 1fdeac0a7d Ignore inaccessible files during library scans 2020-12-31 18:40:24 -08:00
crobibero ca5c20c988 Remove IIsoMounter and IsoMounter 2020-12-03 07:34:15 -07:00
Bond_009 e653eef44f Fix some warnings 2020-08-31 22:20:19 +02:00
Bond_009 ab2147751f Make MediaBrowser.MediaEncoding warnings free 2020-08-20 12:16:24 +02:00
Bond_009 01e781035f Fix warnings 2020-07-24 16:37:54 +02:00
Ken eea142cad1
FullName property instead of ToString in Emby.Server.Implementations/IO/ManagedFileSystem.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-07-18 19:40:28 -06:00
Ken d719ca78b4
Spacing standard on Emby.Server.Implementations/IO/ManagedFileSystem.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-07-18 19:39:31 -06:00
Ken Brazier 6a39b1a4ca Merge 'master' updates into 2354-soft-link-sizes 2020-07-18 11:39:53 -06:00
telans 247f9c61e6
fix SA1513/SA1516 2020-06-16 16:11:30 +12:00
telans 3d9049ef08
fix SA1508 2020-06-15 10:45:55 +12:00
telans acd4389653
fix SA1005 2020-06-15 10:41:00 +12:00
crobibero 44957c5a9a Use typed logger where possible 2020-06-05 18:15:56 -06:00
Ken Brazier 36312c92f5 2354 open soft-links to read size 2020-05-31 16:40:02 -06:00
Erik Rigtorp f144acdc96 Use glob patterns to ignore files 2020-05-15 18:33:18 -07:00
Mark Monteiro c2b21ce553 Register and construct ILibraryMonitor correctly 2020-04-04 17:33:00 -04:00
Bond_009 e9d1eabd53 Remove unused usings 2020-03-24 16:12:06 +01:00
Bond-009 94fe9b8f6d
Merge branch 'master' into warn17 2020-03-11 20:26:43 +01:00
Bond_009 07cc4be6a7 Fix some warnings
* Add analyzers to MediaBrowser.XbmcMetadata
* Enable TreatWarningsAsErrors for MediaBrowser.XbmcMetadata
* Add analyzers to MediaBrowser.WebDashboard
* Enable TreatWarningsAsErrors for MediaBrowser.WebDashboard
* Disable SA1600 in favor of CS1591
2020-02-23 12:11:43 +01:00
Bond_009 7060934792 Fix some warnings in Emby.Server.Implementations 2020-02-06 15:21:38 +01:00
Bond-009 c8409d2ea1 Remove FileSystem.GetStream 2020-01-22 22:20:35 +01:00
dkanada 9eac19c75a change invariant culture to ordinal 2020-01-13 17:09:22 +09:00
dkanada 65e9a705d3 check operating system for absolute path test 2020-01-13 15:34:50 +09:00