![]() Even if we fix it now, will aria reintroduce excess latency in a later release? Is low-latency response a priority for aria, or is a few seconds response time even considered a bug? But it does seem difficult to maintain the constraint that aria must respond to every rpc request quickly enough to keep the kiwix-desktop UI responsive. Its good to have the actual download and disk operations happening in another thread (or in this case, another process). In some cases there won't be a perceivable delay, but its still happening. The UI thread can be called upon many times per second and even a 1ms HTTP request to the aria rpc endpoint will technically block UI updates. I think the challenge with the current approach is that any IO or blocking (even CPU intensive tasks) can cause unresponsiveness in the UI. What you suggest would indeed fix the issue but I think it would be better to know why RPC is hanging and fix that. The rpc call is local only the latency should not be a issue here. We have already move all the downloading process (aria) in another process. ![]() "Download is not available" when on click on the download button. I have also succeed to break the download system once or twice by quickly launch/start/pause/cancel downloads: The only point I see where it could blocks is indeed on the aria rpc call. But we may have miss something on Windows. We already pass a option to not preallocate files ( ) so it should not be the issue. I haven't face hangs at end of download for "small" zim files (few GB) but 78GB download is still running. I've faced very few small hangs on linux too at start of downloading. Or, run the downloader in its own thread in kiwix-desktop. I think the ultimate fix for something like this is to make the aria rpc endpoint requests fully async so there is no chance they will become blocking. I expect that users with fat32 filesystems on removable HDDs would have an even worse hang since they'd have to wait the full duration of the preallocation process. Maybe aria takes a lock out when performing preallocation and the rpc endpoints wait for the lock to return? The hang seemed coincide with the file preallocation. I could see the preallocation in action where we have only downloaded ~400MB but the file is ~11GB: My Windows VM should be running NTFS, but it still took a long time for me. There are some warnings about how this process works quickly with modern filesystems but can take a long time on ext3/fat32. ![]() The other thing I noticed is aria does preallocation of files at the beginning of the download. So the aria rpc may be hanging at some point during the download setup or status check and due to the blocking libcurl request in libkiwix that ultimately leads to hanging the UI thread. At first I thought the problem was with the startDownload function, but the screenshot clearly shows 800KB has downloaded already. Although this makes a request to the aria rpc endpoint, my hypothesis is that aria doesn't reply immediately to some requests. I believe the problem lies in the libkiwix downloader. The scrolling and interface remain somewhat responsive even with a lot of concurrent downloads (5-10).īut Windows very clearly hangs after pressing Download on a large zim. Testing on linux, I didn't see an issue with hangs. Source code available on Github ( Kiwix-desktop Kiwix JS for Windows).Thanks, I didn't realize they were different codebases. ![]() The “Wikipedia of travel guides”, Wikivoyage offers tourism information for almost 30.000 destinations all over the world. It includes content on diseases, medications, anatomy, and sanitation from Wikipedia. With 75,000+ medical articles, WikiMed is the largest and most comprehensive collection of health-related articles available in English. They come in several flavours: UWP (Win10/11), or Electron (Win 7/8/10/11/Linux) WikiMed If you want to sideload the Store version you can get it from, and follow these instructions.Ĭustom apps are copies of Kiwix-JS packaged with a single zim file for ease of use. There is a Windows Store ( UWP) version for Windows 10 or 11 tablets, phones, PC and Xbox, and an Electron versions compatible with older Windows (XP, Vista, Win7) and Linux. Light app compatible with older versions (Windows XP, Vista, etc.) Download and unpack Kiwix 2.0 anywhere on your hard drive or on a flash drive to use it. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |