Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stuck upload slots #348

Open
ratpenat opened this issue Nov 2, 2015 · 8 comments
Open

stuck upload slots #348

ratpenat opened this issue Nov 2, 2015 · 8 comments

Comments

@ratpenat
Copy link

ratpenat commented Nov 2, 2015

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
Copy link
Author

ratpenat commented Sep 5, 2016

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):

  • rtorrent keeps the connection to seeders when a partial download is completed, wasting upload slots.
  • in a rtorrent to rtorrent communication, both peers waste slots. The partial seeder as described before and the full seeder gives a slot to the partial seeder and doesn't release it even if there is no action going on.

@chros73
Copy link
Contributor

chros73 commented Sep 7, 2016

Maybe this is related to this bug (?):

  • finished event doesn't get triggered when couple of files are set to off

@chros73
Copy link
Contributor

chros73 commented Feb 25, 2017

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
Copy link
Contributor

And to cron it…

rtcontrol --from incomplete xfer=0 partial_done=100 --exec disconnect.seeders

@bonk1990
Copy link

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
Copy link
Contributor

chros73 commented May 30, 2017

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
Copy link

bonk1990 commented May 31, 2017

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
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants