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

stickz rtorrent build unable to leech from qBittorrent, Deluge, Transmission clients #354

Closed
3 tasks done
GH0STDATA opened this issue May 29, 2024 · 6 comments · Fixed by #355
Closed
3 tasks done

Comments

@GH0STDATA
Copy link

GH0STDATA commented May 29, 2024

Support guidelines

I've found a bug and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

It seems that there is a bug with stickz's rtorrent repo, I cannot leech from qBittorrent, Deluge, or Transmission clients, which are 3 of the most popular torrent clients, especially on public trackers. Clients like BiglyBT, libTorrent (Rakshasa) 0.13.8, and a few other uncommon clients seem to work fine though.

This is impacting my download speeds tremendously. The official rtorrent repo does not have this issue, I've noticed that this started to happen once I updated to the latest release of this docker container, which switches over to the stickz repo of rtorrent. I've attached an image below, I'm connected to over 50 seeders, but I'm unable to leech from any of the qBittorrent or Transmission clients. I will be reverting to an older version of this docker container until this is resolved or it is switched back to the official rtorrent repo.

image

Expected behaviour

I should be able to leech from any available seeders no matter which client is being used.

Actual behaviour

I cannot leech from any seeders who are using qBittorrent, Deluge or Transmission. Only a select few torrent clients are leech-able with stickz rtorrent repo.

Steps to reproduce

  1. Install docker container.
  2. Download a torrent, preferably a well seeded one on a public tracker.
  3. Look at the peers and see who you're leeching from. Any qBittorrent, Transmission, or Deluge clients cannot be leeched from.

Docker info

Version:    26.0.0
Context:    default
Debug Mode: false
Plugins:
 buildx: Docker Buildx (Docker Inc.)
   Version:  v0.13.1
   Path:     /usr/libexec/docker/cli-plugins/docker-buildx
 compose: Docker Compose (Docker Inc.)
   Version:  v2.25.0
   Path:     /usr/libexec/docker/cli-plugins/docker-compose

Docker Compose config

No response

Logs

The logs do not provide any insight into this issue, I'm not seeing any errors or anomalies at all. If you need specific logs outside of the logs of the container itself, please let me know.

Additional info

No response

@GH0STDATA
Copy link
Author

I can confirm that downgrading to the 4.3.1-0.9.8_3-0.13.8_2-r0 release of this docker container alleviates this issue for now.

stickz added a commit to stickz/docker-rtorrent-rutorrent that referenced this issue May 30, 2024
closes crazy-max#354

Please tag a next release after merging.
@stickz
Copy link
Contributor

stickz commented May 30, 2024

Problem resolved. It was just the block size on the download delegator. Simple 1 line fix.

@stickz
Copy link
Contributor

stickz commented May 30, 2024

@GH0STDATA Please feel free to grab the fix from docker edge, while you wait for a release to be tagged.

@GH0STDATA
Copy link
Author

Problem resolved. It was just the block size on the download delegator. Simple 1 line fix.

Thanks for the really quick fix! I can confirm that the edge build is working fine now.

@stickz
Copy link
Contributor

stickz commented May 30, 2024

Problem resolved. It was just the block size on the download delegator. Simple 1 line fix.

Thanks for the really quick fix! I can confirm that the edge build is working fine now.

No problem. Enjoy the performance and stability benefits of the new rTorrent version.

@GH0STDATA
Copy link
Author

Will do, keep up the great work!

Cryptik-Rick added a commit to Cryptik-Rick/docker-rtorrent-rutorrent that referenced this issue Jun 9, 2024
* cleanup workflow

* Bump action to latest major

* readme: fix badge and typo

* readme: update about section

* Alpine Linux 3.17

Also update to PHP 8.1 and Nginx 1.22.1.

GeoIP2 extension has been updated to 1.3.1 from a fork for
compat with PHP 8.1.

Created a fork of xmlrpc-c on GitHub to fix issues with SVN
checkout from Sourceforge.

* Set  S6_KILL_GRACETIME to 10 seconds (crazy-max#171)

* Align xmlrpc-c version

* ci: increase timeout

* Update CHANGELOG

* Configure xml-rpc correctly

`xmlrpc-c` is not configured properly. It will cause a very significant performance regression, if the `wininet` and `libwww` clients are not disabled. We want `xmlrpc-c` to use `curl` because it's razor fast and stable. These changes require testing before being merged. I don't have time to test it. The change value is of high importance.

* Install nginx and webdav module from Alpine repo

* New year

* Update CHANGELOG

* Make rtorrent and libtorrent with -O2 -flto

rTorrent, libTorrent and xmlrpc support link time optimizations. It's safe to do this. Make rTorrent and libTorrent with Level 2 optimizations. (default is no optimization)

* Bump php version

Needed to bump php7 to php81 to match the installed version, so rutorrent plugins can initiatlise properly.

* Update CHANGELOG

* Fix nginx logs folder perms

* ruTorrent v4.0-stable

* Update GeoIP2 ruTorrent plugin

* Update CHANGELOG

* ruTorrent V4.0.1-hotfix

* Update CHANGELOG

* feat(rutorrent): sets `$localHostedMode = true` (crazy-max#215)

* Update CHANGELOG

* ruTorrent v4.0.2-hotfix 

Bumps ruTorrent version to 4.0.2-hotfix for additional stability improvements.

* Set $cachedPluginLoading to false

* Update CHANGELOG

* Improve watch directory support

Use inotify event instead of task schedule to check watch directory.
https://man7.org/linux/man-pages/man7/inotify.7.html

* Remove erase data workaround

This workaround is no longer desirable, as discussed here:
crazy-max#225 (comment)

closes crazy-max#203
closes crazy-max#225

* Fix RU_REMOVE_CORE_PLUGINS defaults

Remove erasedata from defaults. Set to `false` to disable
removal of core ruTorrent plugins.

* ruTorrent v4.0.4

* RU_CACHED_PLUGIN_LOADING env var (default false)

* Update CHANGELOG

* Bump docker/bake-action from 2 to 3

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 2 to 3.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* ruTorrent: version 4.1.2 stable

This commit bumps ruTorrent to version 4.1.2 stable. Critical bugs are resolved, which cause the web interface to fail to load. It is backwards compatible with other settings in version 4.0.4 stable. https://github.com/Novik/ruTorrent/releases/tag/v4.1.2

* ruTorrent: version 4.1.3 stable

This commit fixes an issue with the RSS context menu not displaying when the `rssurlrewrite` plugin is enabled.
https://github.com/Novik/ruTorrent/releases/tag/v4.1.3

* Update CHANGELOG

* Install php81-dom for ruTorrent v4.1

The `php81-dom` extension is required for ruTorrent v4.1 to function properly. Novik/ruTorrent#2500

`v4.1.3` throws an error when trying to update RSS Feeds. `v4.1.4` will be released next and fix this issue. However, it's still highly recommended to include this extension for optimization. See crazy-max#236. It wasn't enough to just include `php81-xml`. Alpine puts the DOM module into a separate package.

* ruTorrent: Upgrade to version 4.1.5

Fixes a bunch of bugs with RSS Feeds, torrent deletion and caching issues. Cache expiry removed in version 4.1.4. Deprecated options removed from configuration.

* Curl: Add building optimizations

Compile curl and c-ares with level 2 optimizations and link time optimizations. Pipe curl because it barely takes any memory.

* Update CHANGELOG

* chore: remove gitignore and dockerignore

* rTorrent: Improve session saving

This commit improves session saving support for rTorrent to prevent unnecessary loss of torrent files. It also increases the session saving interval from 20 minutes to 1 hour to reduce disk i/o usage with thousands of torrents. Session saving is a very intensive task and torrents fail to save into session by default when added.

* Update CHANGELOG

* ruTorrent: Upgrade to version 4.1.6

* ruTorrent: Upgrade to version 4.1.7

* chore: update labels

* chore: cleanup labels config

* chore: update github form templates

* ci: missing concurrency check

* test: use composite container-logs-check action

* ci: use compose stack for testing

* switch to compose v2

* Alpine Linux 3.18

* Dockerfile: fix src stages

* Update CHANGELOG

* ruTorrent v4.2.2

* Update CHANGELOG

* ruTorrent v4.2.5

* Update CHANGELOG

* rutorrent 4.2.6

Updating rutorrent to  4.2.6

* Bump actions/checkout from 3 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump crazy-max/ghaction-github-labeler from 4 to 5

Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 4 to 5.
- [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases)
- [Commits](crazy-max/ghaction-github-labeler@v4...v5)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/setup-qemu-action from 2 to 3

Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](docker/setup-qemu-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/bake-action from 3 to 4

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 3 to 4.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v3...v4)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/login-action from 2 to 3

Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update README

* Update CHANGELOG

* Bump docker/setup-buildx-action from 2 to 3

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Upgrade to ruTorrent v4.2.9

* Update CHANGELOG

* rTorrent: Add stability patches

This commit adds multiple stability patches to rtorrent.

* Update CHANGELOG

* fix version for tagging

* rTorrent: Add tracker scrape feature

Resolves a software stability issue on rTorrent with tens of thousands of trackers. Announces trackers by default at regular intervals instead of forcefully announcing everything at startup.

* ci: distribute build across runners

* ci: fix build

* Improve c-ares & curl build process

This commit improves the c-ares and curl build process to use cmake instead. This is a much better choice for docker container. We do not require the features GNU Make provides. CMake should also be more stable for testing pull requests on GitHub.

It also upgrades the c-ares and curl version to receive the latest bug fixes and performance changes. There's been a huge leap forward since the older changes. Put simple, curl 8 is faster.

* Update README

* Update CHANGELOG

* Build fixes & improvements

- Compile everything with level 3 optimizations.
- Disable warnings for the rtorrent software stack to prevent overflows and reduce overall ARM build time.
- Fix critical issues with xml-rpc and libtorrent not applying the build flags.
- Add build flags to mktorrent.
- Fix configure params. Spaces are not allowed.
- Drop c++ support for xmlrpc (not required)

* Upgrade to Alpine 3.19

php 8.2 for ruTorrent v4.2.9.
gcc 13.2 for the rTorrent packages

* Update CHANGELOG

* build(deps): bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* rTorrent: Implement UDNS support

This pull request implements the UDNS library into libtorrent for asynchronous DNS requests on UDP trackers. The current c-ares support is limited to TCP trackers.

It resolves stability issues with the rTorrent software stack where it resolves UDP trackers synchronously by default. With a large number of torrents, the software will give out and fail to seed.

It also caches the result of `sscanf` into vector object, to avoid calling it thousands of times on broken trackers. This prevents the software from crashing and increases performance.

* Fix PHP version in rtlocal.rc

* Update CHANGELOG

* Update CHANGELOG.md

* rTorrent: Resolve memory leaks

This patch resolves critical memory leaks with the rTorrent software, that can cause an out of memory condition to happen. It has been tested for months and has demonstrated proven memory stability for rTorrent.

* rTorrent: Resolve memory access crash

rTorrent requires the usage of aligned memory access on all platforms (x86 and ARM) to prevent a memory access crash from happening. As such, we need to configure libtorrent with `--enable-aligned` to enable the feature.

This is also more efficient for CPU usage at the cost of slightly more memory consumption.  However, due to the relatively small usage of memory, all platforms will benefit.

More information can be found here: rakshasa/libtorrent#244

* ruTorrent v4.2.10

Signed-off-by: djerfy <[email protected]>

* rTorrent: Add TCP socket configurations

By overriding the default rmem and wmem values for TCP sockets, we can greatly improve torrent throughput on rTorrent at a tiny cost to memory.

The default values of 4M per socket are a significant step up from rTorrent defaults. The maximum values are raised on alpine, allowing the user to configure up to 64M if they desire.

Environment variables are added to allow the user to control the values within the docker container. Documentation is updated explaining the environment variables and a recommendation for the next steps.

* Add php82-fileinfo package

Fixes uploading of custom PNG icons for trackers.

* new year

* ruTorrent v4.3.0

* update examples and test case

* readme: fix markdown

* Update CHANGELOG

* Fix CHANGELOG

* Update .rtlocal.rc file for changes

fixes crazy-max#336

* ruTorrent v4.3.0 fix

We must add `$useInternalHybrid = true;` to the torrent creator configuration file for ruTorrent v4.3.0.

* update README

* Update CHANGELOG

* ruTorrent v4.3.1-hotfix

Signed-off-by: djerfy <[email protected]>

* ruTorrent: Do not permit core plugin removal of httprpc

Users are receiving 404 errors during version upgrades. We need to disallow removing the httprpc plugin because it's required for ruTorrent v4.3+ operation. See crazy-max#345.

* Update CHANGELOG

* Switch to rTorrent stickz project

rTorrent stickz is a project maintained by a core collaborator of ruTorrent.
https://github.com/stickz/rtorrent

It includes significant performance and stability optimizations for the rTorrent software. It also ensures full compatibility with link time optimizations during the build process.

It is a drop in replacement for rTorrent with all the core patches from this docker container included. It also improves the implementation of UDNS to make it more reliable.

The rTorrent stickz project focuses on performance and stability of the torrent client. It is designed to be fully compatible with ruTorrent. Also, it does not seek to modify the torrent software in any way that may be undesirable for users. As a result, it is a perfect candidate for this docker container!

* nginx: Disable listening for IPV6

fixes crazy-max#348

There is no point in supporting IPV6 on this docker container. IPV4 is required anyways for rTorrent to function properly.

If the user disables loading the IPV6 kernel module at boot time, the docker container will fail to initialize if nginx is listening for IPV6.

* ruTorrent: Upgrade to v4.3.2

* Update CHANGELOG

* rTorrent: Upgrade to version 3.1

closes crazy-max#354

Please tag a next release after merging.

* Update CHANGELOG

* rTorrent: Upgrade to v3.2

# Version 3.2 hotfix
- This hotfix resolves a critical issue with flushing invalid bencode to disk. 
- It also optimizes writing bencode to disk. Metadata is now only flushed when required.

## What's Changed
* rTorrent: Fix & optimize write_bencode by @stickz in stickz/rtorrent@970deae

**Full Changelog**: stickz/rtorrent@v3.1-0.9.8-0.13.8...v3.2-0.9.8-0.13.8

---------

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: djerfy <[email protected]>
Co-authored-by: CrazyMax <[email protected]>
Co-authored-by: CrazyMax <[email protected]>
Co-authored-by: stickz <[email protected]>
Co-authored-by: Aciel <[email protected]>
Co-authored-by: Jeremy Chabernaud <[email protected]>
Co-authored-by: blueberryapple <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ac1dburn <[email protected]>
Co-authored-by: CrazyMax <[email protected]>
Co-authored-by: daschiller <[email protected]>
Cryptik-Rick added a commit to Cryptik-Rick/docker-rtorrent-rutorrent that referenced this issue Jun 9, 2024
* cleanup workflow

* Bump action to latest major

* readme: fix badge and typo

* readme: update about section

* Alpine Linux 3.17

Also update to PHP 8.1 and Nginx 1.22.1.

GeoIP2 extension has been updated to 1.3.1 from a fork for
compat with PHP 8.1.

Created a fork of xmlrpc-c on GitHub to fix issues with SVN
checkout from Sourceforge.

* Set  S6_KILL_GRACETIME to 10 seconds (crazy-max#171)

* Align xmlrpc-c version

* ci: increase timeout

* Update CHANGELOG

* Configure xml-rpc correctly

`xmlrpc-c` is not configured properly. It will cause a very significant performance regression, if the `wininet` and `libwww` clients are not disabled. We want `xmlrpc-c` to use `curl` because it's razor fast and stable. These changes require testing before being merged. I don't have time to test it. The change value is of high importance.

* Install nginx and webdav module from Alpine repo

* New year

* Update CHANGELOG

* Make rtorrent and libtorrent with -O2 -flto

rTorrent, libTorrent and xmlrpc support link time optimizations. It's safe to do this. Make rTorrent and libTorrent with Level 2 optimizations. (default is no optimization)

* Bump php version

Needed to bump php7 to php81 to match the installed version, so rutorrent plugins can initiatlise properly.

* Update CHANGELOG

* Fix nginx logs folder perms

* ruTorrent v4.0-stable

* Update GeoIP2 ruTorrent plugin

* Update CHANGELOG

* ruTorrent V4.0.1-hotfix

* Update CHANGELOG

* feat(rutorrent): sets `$localHostedMode = true` (crazy-max#215)

* Update CHANGELOG

* ruTorrent v4.0.2-hotfix 

Bumps ruTorrent version to 4.0.2-hotfix for additional stability improvements.

* Set $cachedPluginLoading to false

* Update CHANGELOG

* Improve watch directory support

Use inotify event instead of task schedule to check watch directory.
https://man7.org/linux/man-pages/man7/inotify.7.html

* Remove erase data workaround

This workaround is no longer desirable, as discussed here:
crazy-max#225 (comment)

closes crazy-max#203
closes crazy-max#225

* Fix RU_REMOVE_CORE_PLUGINS defaults

Remove erasedata from defaults. Set to `false` to disable
removal of core ruTorrent plugins.

* ruTorrent v4.0.4

* RU_CACHED_PLUGIN_LOADING env var (default false)

* Update CHANGELOG

* Bump docker/bake-action from 2 to 3

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 2 to 3.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* ruTorrent: version 4.1.2 stable

This commit bumps ruTorrent to version 4.1.2 stable. Critical bugs are resolved, which cause the web interface to fail to load. It is backwards compatible with other settings in version 4.0.4 stable. https://github.com/Novik/ruTorrent/releases/tag/v4.1.2

* ruTorrent: version 4.1.3 stable

This commit fixes an issue with the RSS context menu not displaying when the `rssurlrewrite` plugin is enabled.
https://github.com/Novik/ruTorrent/releases/tag/v4.1.3

* Update CHANGELOG

* Install php81-dom for ruTorrent v4.1

The `php81-dom` extension is required for ruTorrent v4.1 to function properly. Novik/ruTorrent#2500

`v4.1.3` throws an error when trying to update RSS Feeds. `v4.1.4` will be released next and fix this issue. However, it's still highly recommended to include this extension for optimization. See crazy-max#236. It wasn't enough to just include `php81-xml`. Alpine puts the DOM module into a separate package.

* ruTorrent: Upgrade to version 4.1.5

Fixes a bunch of bugs with RSS Feeds, torrent deletion and caching issues. Cache expiry removed in version 4.1.4. Deprecated options removed from configuration.

* Curl: Add building optimizations

Compile curl and c-ares with level 2 optimizations and link time optimizations. Pipe curl because it barely takes any memory.

* Update CHANGELOG

* chore: remove gitignore and dockerignore

* rTorrent: Improve session saving

This commit improves session saving support for rTorrent to prevent unnecessary loss of torrent files. It also increases the session saving interval from 20 minutes to 1 hour to reduce disk i/o usage with thousands of torrents. Session saving is a very intensive task and torrents fail to save into session by default when added.

* Update CHANGELOG

* ruTorrent: Upgrade to version 4.1.6

* ruTorrent: Upgrade to version 4.1.7

* chore: update labels

* chore: cleanup labels config

* chore: update github form templates

* ci: missing concurrency check

* test: use composite container-logs-check action

* ci: use compose stack for testing

* switch to compose v2

* Alpine Linux 3.18

* Dockerfile: fix src stages

* Update CHANGELOG

* ruTorrent v4.2.2

* Update CHANGELOG

* ruTorrent v4.2.5

* Update CHANGELOG

* rutorrent 4.2.6

Updating rutorrent to  4.2.6

* Bump actions/checkout from 3 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump crazy-max/ghaction-github-labeler from 4 to 5

Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 4 to 5.
- [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases)
- [Commits](crazy-max/ghaction-github-labeler@v4...v5)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/setup-qemu-action from 2 to 3

Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](docker/setup-qemu-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/bake-action from 3 to 4

Bumps [docker/bake-action](https://github.com/docker/bake-action) from 3 to 4.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](docker/bake-action@v3...v4)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/login-action from 2 to 3

Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update README

* Update CHANGELOG

* Bump docker/setup-buildx-action from 2 to 3

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Upgrade to ruTorrent v4.2.9

* Update CHANGELOG

* rTorrent: Add stability patches

This commit adds multiple stability patches to rtorrent.

* Update CHANGELOG

* fix version for tagging

* rTorrent: Add tracker scrape feature

Resolves a software stability issue on rTorrent with tens of thousands of trackers. Announces trackers by default at regular intervals instead of forcefully announcing everything at startup.

* ci: distribute build across runners

* ci: fix build

* Improve c-ares & curl build process

This commit improves the c-ares and curl build process to use cmake instead. This is a much better choice for docker container. We do not require the features GNU Make provides. CMake should also be more stable for testing pull requests on GitHub.

It also upgrades the c-ares and curl version to receive the latest bug fixes and performance changes. There's been a huge leap forward since the older changes. Put simple, curl 8 is faster.

* Update README

* Update CHANGELOG

* Build fixes & improvements

- Compile everything with level 3 optimizations.
- Disable warnings for the rtorrent software stack to prevent overflows and reduce overall ARM build time.
- Fix critical issues with xml-rpc and libtorrent not applying the build flags.
- Add build flags to mktorrent.
- Fix configure params. Spaces are not allowed.
- Drop c++ support for xmlrpc (not required)

* Upgrade to Alpine 3.19

php 8.2 for ruTorrent v4.2.9.
gcc 13.2 for the rTorrent packages

* Update CHANGELOG

* build(deps): bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](docker/metadata-action@v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* rTorrent: Implement UDNS support

This pull request implements the UDNS library into libtorrent for asynchronous DNS requests on UDP trackers. The current c-ares support is limited to TCP trackers.

It resolves stability issues with the rTorrent software stack where it resolves UDP trackers synchronously by default. With a large number of torrents, the software will give out and fail to seed.

It also caches the result of `sscanf` into vector object, to avoid calling it thousands of times on broken trackers. This prevents the software from crashing and increases performance.

* Fix PHP version in rtlocal.rc

* Update CHANGELOG

* Update CHANGELOG.md

* rTorrent: Resolve memory leaks

This patch resolves critical memory leaks with the rTorrent software, that can cause an out of memory condition to happen. It has been tested for months and has demonstrated proven memory stability for rTorrent.

* rTorrent: Resolve memory access crash

rTorrent requires the usage of aligned memory access on all platforms (x86 and ARM) to prevent a memory access crash from happening. As such, we need to configure libtorrent with `--enable-aligned` to enable the feature.

This is also more efficient for CPU usage at the cost of slightly more memory consumption.  However, due to the relatively small usage of memory, all platforms will benefit.

More information can be found here: rakshasa/libtorrent#244

* ruTorrent v4.2.10

Signed-off-by: djerfy <[email protected]>

* rTorrent: Add TCP socket configurations

By overriding the default rmem and wmem values for TCP sockets, we can greatly improve torrent throughput on rTorrent at a tiny cost to memory.

The default values of 4M per socket are a significant step up from rTorrent defaults. The maximum values are raised on alpine, allowing the user to configure up to 64M if they desire.

Environment variables are added to allow the user to control the values within the docker container. Documentation is updated explaining the environment variables and a recommendation for the next steps.

* Add php82-fileinfo package

Fixes uploading of custom PNG icons for trackers.

* new year

* ruTorrent v4.3.0

* update examples and test case

* readme: fix markdown

* Update CHANGELOG

* Fix CHANGELOG

* Update .rtlocal.rc file for changes

fixes crazy-max#336

* ruTorrent v4.3.0 fix

We must add `$useInternalHybrid = true;` to the torrent creator configuration file for ruTorrent v4.3.0.

* update README

* Update CHANGELOG

* ruTorrent v4.3.1-hotfix

Signed-off-by: djerfy <[email protected]>

* ruTorrent: Do not permit core plugin removal of httprpc

Users are receiving 404 errors during version upgrades. We need to disallow removing the httprpc plugin because it's required for ruTorrent v4.3+ operation. See crazy-max#345.

* Update CHANGELOG

* Switch to rTorrent stickz project

rTorrent stickz is a project maintained by a core collaborator of ruTorrent.
https://github.com/stickz/rtorrent

It includes significant performance and stability optimizations for the rTorrent software. It also ensures full compatibility with link time optimizations during the build process.

It is a drop in replacement for rTorrent with all the core patches from this docker container included. It also improves the implementation of UDNS to make it more reliable.

The rTorrent stickz project focuses on performance and stability of the torrent client. It is designed to be fully compatible with ruTorrent. Also, it does not seek to modify the torrent software in any way that may be undesirable for users. As a result, it is a perfect candidate for this docker container!

* nginx: Disable listening for IPV6

fixes crazy-max#348

There is no point in supporting IPV6 on this docker container. IPV4 is required anyways for rTorrent to function properly.

If the user disables loading the IPV6 kernel module at boot time, the docker container will fail to initialize if nginx is listening for IPV6.

* ruTorrent: Upgrade to v4.3.2

* Update CHANGELOG

* rTorrent: Upgrade to version 3.1

closes crazy-max#354

Please tag a next release after merging.

* Update CHANGELOG

* rTorrent: Upgrade to v3.2

# Version 3.2 hotfix
- This hotfix resolves a critical issue with flushing invalid bencode to disk. 
- It also optimizes writing bencode to disk. Metadata is now only flushed when required.

## What's Changed
* rTorrent: Fix & optimize write_bencode by @stickz in stickz/rtorrent@970deae

**Full Changelog**: stickz/rtorrent@v3.1-0.9.8-0.13.8...v3.2-0.9.8-0.13.8

---------

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: djerfy <[email protected]>
Co-authored-by: CrazyMax <[email protected]>
Co-authored-by: CrazyMax <[email protected]>
Co-authored-by: stickz <[email protected]>
Co-authored-by: Aciel <[email protected]>
Co-authored-by: Jeremy Chabernaud <[email protected]>
Co-authored-by: blueberryapple <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ac1dburn <[email protected]>
Co-authored-by: CrazyMax <[email protected]>
Co-authored-by: daschiller <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants