The field '"kind=" does not work when there are a lot of torrents
Opened this issue · 1 comments
Deleted user commented
In one instance of rtorrent I have ~10 000 music torrents and the field 'kind=' does not work.
For instance, to the command rtcontrol kind=flac
I get the following output:
INFO: Bad data packets written to '/tmp/xmlrpc2scgi-1001.xml'
INFO Total time: 1.952 seconds.
Traceback (most recent call last):
File "/home/rtorrent/bin/rtcontrol", line 11, in <module>
load_entry_point('pyrocore', 'console_scripts', 'rtcontrol')()
File "/home/rtorrent/.local/pyroscope/src/pyrocore/scripts/rtcontrol.py", line 803, in run
RtorrentControl().run()
File "/home/rtorrent/.local/pyroscope/src/pyrocore/scripts/base.py", line 267, in run
self.mainloop()
File "/home/rtorrent/.local/pyroscope/src/pyrocore/scripts/rtcontrol.py", line 614, in mainloop
matches = list(view.items())
File "/home/rtorrent/.local/pyroscope/src/pyrocore/torrent/engine.py", line 645, in items
if self.matcher.match(item):
File "/home/rtorrent/.local/pyroscope/src/pyrocore/util/matching.py", line 128, in match
return all(i.match(item) for i in self)
File "/home/rtorrent/.local/pyroscope/src/pyrocore/util/matching.py", line 128, in <genexpr>
return all(i.match(item) for i in self)
File "/home/rtorrent/.local/pyroscope/src/pyrocore/util/matching.py", line 399, in match
tags = getattr(item, self._name) or []
File "/home/rtorrent/.local/pyroscope/src/pyrocore/torrent/engine.py", line 251, in __get__
return self.valtype(self._accessor(obj) if self._accessor else obj._fields[self.name])
File "/home/rtorrent/.local/pyroscope/src/pyrocore/torrent/engine.py", line 568, in <lambda>
matcher=matching.TaggedAsFilter, formatter=_fmt_tags, accessor=lambda o: o.fetch("kind_0"))
File "/home/rtorrent/.local/pyroscope/src/pyrocore/torrent/rtorrent.py", line 184, in fetch
val = self._get_kind(int(name[5:], 10))
File "/home/rtorrent/.local/pyroscope/src/pyrocore/torrent/rtorrent.py", line 149, in _get_kind
histo = traits.get_filetypes(self.fetch("files"),
File "/home/rtorrent/.local/pyroscope/src/pyrocore/torrent/rtorrent.py", line 182, in fetch
val = self._get_files()
File "/home/rtorrent/.local/pyroscope/src/pyrocore/torrent/rtorrent.py", line 99, in _get_files
rpc_result = f_multicall(*tuple(f_params))
File "/home/rtorrent/.local/pyroscope/src/pyrocore/util/xmlrpc.py", line 154, in __call__
result = xmlrpclib.loads(xmlresp)[0][0]
File "/usr/lib/python2.7/xmlrpclib.py", line 1144, in loads
p.feed(data)
File "/usr/lib/python2.7/xmlrpclib.py", line 558, in feed
self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 6, column 25
In another instance, I have fewer music torrents ~3000 and the command works correctly.
pyroscope commented
https://rtorrent-docs.readthedocs.io/en/latest/cmd-ref.html#term-network-xmlrpc-size-limit
Please do not use the issue tracker for support.