RobotsOnDrugs / BDSM

The Best Downloader for Sideloader Mods
MIT License
16 stars 2 forks source link

[Bug] Error when scanning the server #24

Closed thetoxicityof closed 1 year ago

thetoxicityof commented 1 year ago

Problem behavior

The console was stuck at "Info: Scanning the server." for a while, then crashes entirely outputting: Could not scan the server. Failed scan tasks had the following errors: Exception of type 'BDSM.Lib.Exceptions+FTPConnectionException' was thrown. See the log for full error details.

KKManager seems to work fine. But it is indeed very slow at downloading speed.

Full Log: [2023-01-12 21:52:06.0734] Info: == Begin BDSM log == [2023-01-12 21:52:06.1459] Info: Logger initialized. [2023-01-12 21:52:06.2926] Info: Scanning the server. [2023-01-12 21:52:13.6182] [C:\Users\iamtheclaw\source\repos\BDSM\BDSMInternal.cs: 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>cDisplayClass5_0.

b__0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-12 21:52:13.6182] [C:\Users\iamtheclaw\source\repos\BDSM\BDSMInternal.cs: 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>cDisplayClass5_0.
b0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-12 21:56:31.3150] Fatal: Could not scan the server. Failed scan tasks had the following errors: [2023-01-12 21:56:31.3150] [C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs: 198] Warn: BDSM.Lib.Exceptions+FTPConnectionException: Exception of type 'BDSM.Lib.Exceptions+FTPConnectionException' was thrown. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>c__DisplayClass5_0.
b0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-12 21:56:31.3244] Off: == End BDSM log == [2023-01-12 22:00:02.1228] Info: == Begin BDSM log == [2023-01-12 22:00:02.1457] Info: Logger initialized. [2023-01-12 22:00:02.2649] Info: Scanning the server. [2023-01-12 22:00:09.4146] [C:\Users\iamtheclaw\source\repos\BDSM\BDSMInternal.cs: 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>cDisplayClass5_0.
b__0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-12 22:00:09.4755] [C:\Users\iamtheclaw\source\repos\BDSM\BDSMInternal.cs: 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>cDisplayClass5_0.
b0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-12 22:00:40.8649] Off: == End BDSM log == [2023-01-12 22:02:59.8078] Info: == Begin BDSM log == [2023-01-12 22:02:59.8295] Info: Logger initialized. [2023-01-12 22:02:59.9464] Info: Scanning the server. [2023-01-12 22:03:07.1053] [C:\Users\iamtheclaw\source\repos\BDSM\BDSMInternal.cs: 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>c__DisplayClass5_0.
b0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-12 22:03:07.1195] [C:\Users\iamtheclaw\source\repos\BDSM\BDSMInternal.cs: 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>cDisplayClass5_0.
b__0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-12 22:07:24.0311] Fatal: Could not scan the server. Failed scan tasks had the following errors: [2023-01-12 22:07:24.0311] [C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs: 198] Warn: BDSM.Lib.Exceptions+FTPConnectionException: Exception of type 'BDSM.Lib.Exceptions+FTPConnectionException' was thrown. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) at BDSM.BDSM.<>cDisplayClass5_0.
b__0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)

Expected behavior

No response

Steps to reproduce

No response

pigwithslippers commented 1 year ago

I have got exacly the same problem. I then tried the 0.3.4 version and the error kept happening. Further reverting to the 0.3.3 version solved the issue. Try it as a workaround for the time being.

thetoxicityof commented 1 year ago

I have got exacly the same problem. I then tried the 0.3.4 version and the error kept happening. Further reverting to the 0.3.3 version solved the issue. Try it as a workaround for the time being.

tried downgrading to 0.3.3. it did solve my issue temporarily. thanks.

RobotsOnDrugs commented 1 year ago

0.3.4 is known to have issues. Use 0.3.5 which fixes 0.3.4's problems and see if you are still unable to connect while 0.3.3 works.

thetoxicityof commented 1 year ago

0.3.4 is known to have issues. Use 0.3.5 which fixes 0.3.4's problems and see if you are still unable to connect while 0.3.3 works.

I am actually using 0.3.5, the one that had the errors. Reverting to 0.3.3 did actually fix the issue as per @pigwithslippers idea.

RobotsOnDrugs commented 1 year ago

Can you provide a debug log from a debug build of 0.3.5?

RobotsOnDrugs commented 1 year ago

No, a debug log. If you download and run a debug build from the releases page, it will produce a file named BDSM.debug.log with a ton of messages.

Also, does it fail right away or does it take some time?

thetoxicityof commented 1 year ago

No, a debug log. If you download and run a debug build from the releases page, it will produce a file named BDSM.debug.log with a ton of messages.

Also, does it fail right away or does it take some time?

yes. i was wrong. i ran the non-debug build. now this one is correct. it doesn't fail right away. it takes a bit of a time. 2-5 mins. here it is

[2023-01-13 04:33:05.5950] [BDSM.cs: line 53] Info: == Begin BDSM log == [2023-01-13 04:33:05.6175] [BDSM.cs: line 54] Debug: == Begin BDSM debug log == [2023-01-13 04:33:05.6175] [BDSM.cs: line 55] Info: Logger initialized. [2023-01-13 04:33:05.6693] [Configuration.cs: line 167] Debug: Validating user configuration [2023-01-13 04:33:05.6693] [Configuration.cs: line 173] Debug: User configuration was verified. [2023-01-13 04:33:05.7437] [LoggingConfiguration.cs: line 63] Info: Scanning the server. [2023-01-13 04:33:05.7505] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 0 retries. [2023-01-13 04:33:05.7505] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 0 retries. [2023-01-13 04:33:05.7505] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 0 retries. [2023-01-13 04:33:05.7505] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 0 retries. [2023-01-13 04:33:05.7505] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 0 retries. [2023-01-13 04:33:07.5470] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 1 retries. [2023-01-13 04:33:07.5630] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 1 retries. [2023-01-13 04:33:08.3490] [FTPFunctions.cs: line 36] Debug: An FTP connection was successful [2023-01-13 04:33:08.3490] [FTPFunctions.cs: line 36] Debug: An FTP connection was successful [2023-01-13 04:33:08.3568] [FTPFunctions.cs: line 36] Debug: An FTP connection was successful [2023-01-13 04:33:09.3446] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 2 retries. [2023-01-13 04:33:09.3606] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 2 retries. [2023-01-13 04:33:11.1530] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 3 retries. [2023-01-13 04:33:11.1680] [FTPFunctions.cs: line 31] Debug: TryConnect hit with 3 retries. [2023-01-13 04:33:12.9495] [FTPFunctions.cs: line 61] Debug: Failed to establish an FTP connection. [2023-01-13 04:33:12.9654] [FTPFunctions.cs: line 61] Debug: Failed to establish an FTP connection. [2023-01-13 04:33:13.2093] [BDSMInternal.cs: line 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.Lib\FTPFunctions.cs:line 78 at BDSM.BDSM.<>cDisplayClass5_0.

b__0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-13 04:33:13.2247] [BDSMInternal.cs: line 68] Warn: A task was faulted. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.Lib\FTPFunctions.cs:line 78 at BDSM.BDSM.<>cDisplayClass5_0.
b0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [2023-01-13 04:37:31.0073] [LoggingConfiguration.cs: line 63] Fatal: Could not scan the server. Failed scan tasks had the following errors: [2023-01-13 04:37:31.0073] [BDSM.cs: line 198] Warn: BDSM.Lib.Exceptions+FTPConnectionException: Exception of type 'BDSM.Lib.Exceptions+FTPConnectionException' was thrown. at BDSM.Lib.FTPFunctions.GetFilesOnServer(ConcurrentBag1& paths_to_scan, ConcurrentDictionary2& files_found, RepoConnectionInfo repoinfo, CancellationToken ct) in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.Lib\FTPFunctions.cs:line 78 at BDSM.BDSM.<>c__DisplayClass5_0.
b0() in C:\Users\iamtheclaw\source\repos\BDSM\BDSM.cs:line 183 at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)

RobotsOnDrugs commented 1 year ago

This seems to be triggered when there is an open connection to the server elsewhere and a task aborts because there are too many connections or if there is just some other temporary problem. The issue was that the logic for handling this got messed up - if the first task it looked at was faulted, it treated the entire operation as faulted even if it was able to finish.

A new release with the fix will be up shortly.

RobotsOnDrugs commented 1 year ago

The release is out, but I won't announce it unless the issue has truly been resolved for you. https://github.com/RobotsOnDrugs/BDSM/releases/tag/v0.3.6

thetoxicityof commented 1 year ago

The release is out, but I won't announce it unless the issue has truly been resolved for you. https://github.com/RobotsOnDrugs/BDSM/releases/tag/v0.3.6

The new release fixed it. Thanks.