Opened 7 weeks ago
#3642 new bug
Latent and missing keys in torrent_status and update_ui API/method returns
Reported by: | ambipro | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | needs verified |
Component: | Core | Version: | develop |
Keywords: | update, torrent, status, webui, api, json-rpc | Cc: |
Description
After a seemingly random amount of time post-start, both the update_ui and get_torrent_status API commands will either return outdated (or potentially erroneous) information with their keys - for instance, stating a torrent is "Paused" or "Downloading" state when it is "Seeding" while all other keys indicate the torrent is completed, or showing total_remaining > 1 but "Seeding" state after a download has completed...but the most common is that keys are completely missing from the return altogether. Examples of missing keys I've noticed range from name and label to tracker and state. All "critical" keys.
What appears to be going on is that the synchronization between the web daemon and the deluged process "decays" over time, however, this can be remedied immediately upon disconnecting the web daemon and reconnecting it the the RPC daemon. Once this is done all values appear and report correctly until this desync occurs once again.
What _APPEARS_ to somewhat mitigate the occurrence of this bug is polling the entire torrent list with update_ui regularly. It does not fix this entirely though, but seems to make it occur less often.
I have only been able to reproduce this when the web daemon is running as a separate process from the deluged. I have not been able to reproduce this in my limited testing with the WebUI being run as a plugin, but my testing was not exhaustive. Thus this seems to affect docker containers more than native instances.