-
-
Notifications
You must be signed in to change notification settings - Fork 344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
System.TimoutException (transaction timeout) for large downloads on a slower connection #1935
Comments
We set the timeout here to be the maximum time limit proscribed by the transaction library itself. The issue is documented (see, MS told us to do it that way 🙉) elsewhere I agree with the idea that a single CKAN transaction could take over 10 minutes and still complete successfully. Ultimately, we can either hammer a huge number in there or we can make it configurable somewhere. Paging @politas to weigh in on this. |
Spacedock has been having some issues recently, so I would suspect the problem is there. Have you had any issues with mods on Curse or GitHub? |
@politas What I'm wondering is why the download is part of the transaction as well (and therefore counts against the time limit), since as I said downloading can legitimately take quite a while and it seems that despite the transaction timeout, the download itself does make it into the cache and (luckily) isn't rolled back. Also, the timeout (again, luckily) doesn't force an abort of the currently running download, but at least in my case only kicks in after downloading has terminated normally. So if the intention is to roll back genuinely failed downloads, this must (or should ?) be handled somehow differently? Or was there any other reason why this approach was chosen? Actually, looking at the ModuleInstaller, it looks like in theory we do kick off the downloads outside of the transaction - could the issue be that the downloads are done asynchronously, so we start all the downloads, enter the transaction and then timeout while waiting for all the downloads to complete? |
Please provide KSP file or console log output or the stack trace from your TimeoutException. |
Which log file are you referring to? Using the GUI I haven't seen any obvious way to get the logs and the unhandled exception dialogue doesn't show any stack trace in this case - just the exception name and description as well as the big list of loaded modules. However when running a local build under Visual Studio I end up with a
with the actual |
The command line difference will prove useful, thanks for that trace. When a transaction - specifically not the one related to your requested install - times out, it will not throw any TimeoutException immediately as the timeout is passed. When there is still a timed out exception on the stack that TransactionScope maintaines, it tries to wrap the new transaction (i.e. the one related to your requested install) using There is a lot going on here and as you have seen the ModuleInstaller code is complex and tightly coupled. Ultimately the issue written up is about a TimeoutException inside a TransactionAbortedException that only seems to affect the GUI. Will follow up when I have more time to look into it. |
@politas I believe this issue can now be closed. |
@archer884, might wait until I push out a new release. |
Sorry to revive this issue, but for people with a slow connection, it is simply impossible to download big mods (200MB is the maximum for me). |
This should have been addressed by #3512's disabling of the mis-feature of transaction timeout limits. |
Thanks for wanting to bring an issue to our attention!
Before you open a ticket, please do a quick search of the existing issues to see if it's already been brought up.
CKAN Version:
1.20.1-0-gd41fe54 (beta)
Operating System:
Windows 7
The issue you are experiencing:
After downloading has finished, instead of the mods installing I just get the unhandled exception window showing that a transaction timeout exception (System.TimoutException) has occured. Luckily the mods do get downloaded into the cache, so the next installation attempt succeeds.
How to recreate this issue:
Download any largeish mod (e.g. Stock Visual Enhancements) on a none too fast internet connection (2 Mbps in my case). It seems like the transaction timeouts currently configured in CKAN might not take account of the fact that in those cases downloads can legitimately take more than a few minutes.
The text was updated successfully, but these errors were encountered: