rakshasa / rtorrent

rTorrent BitTorrent client
https://github.com/rakshasa/rtorrent/wiki
GNU General Public License v2.0
4.17k stars 415 forks source link

stuck upload slots #348

Open ratpenat opened 8 years ago

ratpenat commented 8 years ago

Sometimes, especially after periods of high activity with many peers, some upload slots get stuck. With no activity whatsoever and no peer connections on the active view, the upload slot info at the bottom shows for instance [U 14/60]. This phantom upload slots don't get released and a client restart is required.

ratpenat commented 8 years ago

The cause of this are rtorrent clients that did download a torrent partially (setting some files to off priority because they are not interested in them):

chros73 commented 8 years ago

Maybe this is related to this bug (?):

chros73 commented 7 years ago

All you need to do is to fire up this command if a download is partially finished: d.disconnect.seeders=

This issue relates to: #144 (rtorrent 0.9.3/0.13.3: Issues with "partially" downloaded torrent. Never finishes, completion percentage)

pyroscope commented 7 years ago

And to cron it…

rtcontrol --from incomplete xfer=0 partial_done=100 --exec disconnect.seeders
bonk1990 commented 7 years ago

Hi, could you help me with config.py file? A tried add "partial_done" to rtcontrol fields but...

bonk1990@HTPC ~/rtorrent $ rtcontrol --from incomplete xfer=0 partial_done=100 --exec disconnect.seeders
INFO     Total time: 0.015 seconds.
Traceback (most recent call last):
  File "/home/bonk1990/bin/rtcontrol", line 11, in <module>
    load_entry_point('pyrocore', 'console_scripts', 'rtcontrol')()
  File "/home/bonk1990/.local/pyroscope/src/pyrocore/scripts/rtcontrol.py", line 785, in run
    RtorrentControl().run()
  File "/home/bonk1990/.local/pyroscope/src/pyrocore/scripts/base.py", line 237, in run
    self.get_options()
  File "/home/bonk1990/.local/pyroscope/src/pyrocore/scripts/base.py", line 329, in get_options
    load_config.ConfigLoader(self.options.config_dir).load(self.OPTIONAL_CFG_FILES + self.options.config_file)
  File "/home/bonk1990/.local/pyroscope/src/pyrocore/util/load_config.py", line 236, in load
    self._load_py(namespace, namespace["config_script"])
  File "/home/bonk1990/.local/pyroscope/src/pyrocore/util/load_config.py", line 207, in _load_py
    exec(compile(open(config_file).read(), config_file, 'exec'), vars(config), namespace)
  File "/home/bonk1990/.pyroscope/config.py", line 38
    yield engine.DynamicField(int, "partial_size", "bytes selected for download",
SyntaxError: 'yield' outside function
chros73 commented 7 years ago

You can add 1 more new line like this with the value is_partially_done (instead of "partial_done"): yield engine.OnDemandField(int, "is_partially_done", "is partially done", matcher=matching.FloatFilter)

bonk1990 commented 7 years ago

I'm sorry, but I'm new to this and definitely need more help. bonk1990@HTPC ~ $ rtcontrol --from incomplete xfer=0 partial_done=100 --exec disconnect.seeders in return ERROR Bad command u'disconnect.seeders', probably missing a '=' (need more than 1 value to unpack)

I tried: bonk1990@HTPC ~ $ rtcontrol --from incomplete xfer=0 partial_done=100 --exec disconnect.seeders= but in return seeds will be disconnected only for one second. After that seeds will be up (new one)

pyroscope commented 7 years ago

BTW, this is the wrong project, an issue tracker is not a support platform, and you hijacked another person's ticket.

To get in contact and share your experiences with other users of PyroScope, join the pyroscope-users mailing list or the inofficial ##rtorrent channel on irc.freenode.net.