Replies: 5 comments 19 replies
-
If a string is pushed then it should work correctly, so there's likely a bug in your plugin. Probably should replace the get rid of the special handling of lists, and instead provide a list unwrapping command. |
Beta Was this translation helpful? Give feedback.
-
Is this with xmlrpc-c or tinyxml? |
Beta Was this translation helpful? Give feedback.
-
It's finally summer weather here, and already have the ipv6 issue to fix first. Current plan is to reproduce the errors in unit tests, and possibly add a custom handler in the session file loader to fix invalid |
Beta Was this translation helpful? Give feedback.
-
Branch Test it with logging, I want to know if it properly throws errors during the calls. (which would indicate lists are being passed to the commands. |
Beta Was this translation helpful? Give feedback.
-
Got sent a log, and all calls to |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I am experiencing a persistent and unusual bug in rTorrent's view management, where view names appear as [[string]] (a list containing a list with a string) instead of the expected [string] (a list containing a string).
Problem Description:
When querying d.views (or similar view-related commands), view entries are incorrectly nested. For example, instead of [rat_0], the output consistently shows [[rat_0]]. This affects the usability of various view-dependent functions and the rutorrent.
Context & Reproduction History:
This issue first appeared after I enabled and used the extratio plugin in rutorrent. The extratio plugin uses view.set_visible and d.views.push_back_unique (or similar commands) to manage custom ratio views like "rat_0", "rat_1", etc.
Key Observations:
The bug appears to stem from rTorrent's internal handling of adding a single string (representing a view name) to a list. It incorrectly wraps the string in an additional list.
Even after disabling and completely deleting the extratio plugin directory, manually correcting all affected session files (by editing the bencode to remove the double nesting), and recompiling rTorrent from source, the problem reappears.
This suggests that once a view name (like "rat_0") has been introduced via the problematic path, rTorrent's own internal initialization or view recreation logic subsequently re-introduces the double-nesting every time it processes these views upon startup or torrent loading.
Hypothesized Root Cause:
The issue likely lies within rTorrent's core C++ code for handling Object types, specifically when a TYPE_STRING is intended to be added directly to a TYPE_LIST (such as d.views). It appears an insert_back or similar list manipulation function might be incorrectly treating a singular string as if it were already a list to be nested, or it's implicitly creating an extra list layer around the string.
Potentially Relevant Source Files (from user's observations and prior debugging attempts):
object.h (specifically Object::insert_back, TYPE_STRING, TYPE_LIST definitions and their interactions)
download_wrapper.h
download_constructor.h
common.h
option_strings.h
Impact:
The persistence of this error, despite thorough user-side troubleshooting (plugin removal, session file correction, recompilation), indicates a fundamental bug in rTorrent's view management that currently has no user-side workaround.
If anyone have any idea what I can do about this problem?
Beta Was this translation helpful? Give feedback.
All reactions