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

Error in nginx: [emerg] socket() [::]:8000 failed (97: Address family not supported by protocol) #348

Closed
3 tasks done
tiberio87 opened this issue May 23, 2024 · 5 comments · Fixed by #349
Closed
3 tasks done

Comments

@tiberio87
Copy link

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

I'm getting an nginx error

Expected behaviour

working as it should

Actual behaviour

totalt breakdown

Steps to reproduce

update to latest version

Docker info

Client: Docker Engine - Community
 Version:    26.1.3
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.0
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.27.0
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 29
  Running: 28
  Paused: 0
  Stopped: 1
 Images: 39
 Server Version: 26.1.3
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: e377cd56a71523140ca6ae87e30244719194a521
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.0-107-generic
 Operating System: Ubuntu 22.04.4 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 15.4GiB
 Name: homelab
 ID: 64034960-fb4a-4687-bb99-367046b6ef28
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Docker Compose config

services:
  geoip-updater:
    image: crazymax/geoip-updater:latest
    container_name: geoip-updater
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Rome
    networks:
      - rtorrent-rutorrent
    volumes:
      - "/home/mgrsys/rtorrent/geoip:/data"
    env_file:
      - "./geoip-updater.env"
    restart: unless-stopped

  rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    container_name: rtorrent-rutorrent
    environment:
      AUTH_DELAY: 0s
      LOG_ACCESS: "true"
      LOG_IP_VAR: remote_addr
      MAX_FILE_UPLOADS: "50"
      MEMORY_LIMIT: 256M
      OPCACHE_MEM_SIZE: "128"
      PGID: "1000"
      PUID: "1000"
      REAL_IP_FROM: 0.0.0.0/32
      REAL_IP_HEADER: X-Forwarded-For
      RT_DHT_PORT: "51347"
      RT_INC_PORT: "51348"
      RT_LOG_EXECUTE: "false"
      RT_LOG_LEVEL: info
      RT_LOG_XMLRPC: "false"
      RU_DO_DIAGNOSTIC: "true"
      RU_FORBID_USER_SETTINGS: "false"
      RU_HTTP_TIME_OUT: "30"
      RU_HTTP_USE_GZIP: "true"
      RU_HTTP_USER_AGENT: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
      RU_LOCALE: UTF8
      RU_LOG_FILE: /data/rutorrent/rutorrent.log
      RU_LOG_RPC_CALLS: "false"
      RU_LOG_RPC_FAULTS: "true"
      RU_OVERWRITE_UPLOADED_TORRENTS: "false"
      RU_PHP_GZIP_LEVEL: "2"
      RU_PHP_USE_GZIP: "false"
      RU_RPC_TIME_OUT: "5"
      RU_SAVE_UPLOADED_TORRENTS: "true"
      RU_SCHEDULE_RAND: "10"
      RUTORRENT_AUTHBASIC_STRING: ruTorrent restricted access
      RUTORRENT_PORT: "8080"
      TZ: Europe/Paris
      UPLOAD_MAX_SIZE: 16M
      WAN_IP_CMD: dig +short myip.opendns.com @resolver1.opendns.com
      WEBDAV_AUTHBASIC_STRING: WebDAV restricted access
      WEBDAV_PORT: "9000"
      XMLRPC_AUTHBASIC_STRING: rTorrent XMLRPC restricted access
      XMLRPC_PORT: "8000"
    networks:
      - rtorrent-rutorrent
    expose:
      - 51347/udp
      - "8000"
      - "8080"
      - "9000"
      - "51348"
    ports:
      - target: 51347
        published: "51347"
        protocol: udp
      - target: 8080
        published: "8080"
        protocol: tcp
      - target: 9000
        published: "9001"
        protocol: tcp
      - target: 51348
        published: "51348"
        protocol: tcp
    volumes:
      - "/home/mgrsys/rtorrent:/data"
      - "/home/mgrsys/download:/downloads"
      - "/home/mgrsys/rtorrent/passwd:/passwd"

    ulimits:
      nproc: 65535
      nofile:
        soft: 32000
        hard: 40000
    stop_grace_period: 300s
    restart: unless-stopped

  rtorrent-logs:
    image: bash
    container_name: rtorrent-rutorrent-logs
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Rome
    command: bash -c 'tail -f /log/*.log'
    network_mode: none
    depends_on:
      - rtorrent-rutorrent
    volumes:
      - "/home/mgrsys/rtorrent/rtorrent/log:/log"
    restart: unless-stopped

networks:
  rtorrent-rutorrent:
    name: rtorrent-rutorrent
    external: true

Logs

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.

[s6-init] ensuring user provided files have correct perms...exited 0.

[fix-attrs.d] applying ownership & permissions fixes...

[fix-attrs.d] done.

[cont-init.d] executing container initialization scripts...

[cont-init.d] 00-fix-logs.sh: executing... 

[cont-init.d] 00-fix-logs.sh: exited 0.

[cont-init.d] 01-fix-uidgid.sh: executing... 

[cont-init.d] 01-fix-uidgid.sh: exited 0.

[cont-init.d] 02-fix-perms.sh: executing... 

Fixing perms...

[cont-init.d] 02-fix-perms.sh: exited 0.

[cont-init.d] 03-config.sh: executing... 

Setting timezone to Europe/Paris...

Setting PHP-FPM configuration...

Setting PHP INI configuration...

Setting OpCache configuration...

Setting Nginx configuration...

Setting Nginx XMLRPC over SCGI configuration...

Setting Nginx ruTorrent configuration...

Setting Nginx WebDAV configuration...

Update healthcheck script...

Initializing files and folders...

rpc.htpasswd is empty, removing authentication...

rutorrent.htpasswd is empty, removing authentication...

webdav.htpasswd is empty, removing authentication...

Checking rTorrent local configuration...

Checking rTorrent configuration...

Bootstrapping ruTorrent configuration...

Setting custom config for create plugin...

Checking ruTorrent custom plugins...

Checking ruTorrent plugins configuration...

Checking ruTorrent custom themes...

Setting GeoIP2 databases for geoip2 plugin...

Fixing perms...

[cont-init.d] 03-config.sh: exited 0.

[cont-init.d] 04-create-services.sh: executing... 

[cont-init.d] 04-create-services.sh: exited 0.

[cont-init.d] ~-socklog: executing... 

[cont-init.d] ~-socklog: exited 0.

[cont-init.d] done.

[services.d] starting services

[services.d] done.

2024/05/23 08:22:22 [emerg] 512#512: socket() [::]:8000 failed (97: Address family not supported by protocol)

nginx: [emerg] socket() [::]:8000 failed (97: Address family not supported by protocol)

[23-May-2024 08:22:22] NOTICE: fpm is running, pid 515

[23-May-2024 08:22:22] NOTICE: ready to handle connections

2024/05/23 08:22:23 [emerg] 573#573: socket() [::]:8000 failed (97: Address family not supported by protocol)

Additional info

No response

@tiberio87
Copy link
Author

I found the problem. I had ipv6 disabled in GRUB, once reactivated it works. How can I make it work with ipv6 disabled?

@crazy-max
Copy link
Owner

I wonder if this is related to recent changes in Docker 26.1 with IPv6 (cc @robmry)

@robmry
Copy link

robmry commented May 23, 2024

I wonder if this is related to recent changes in Docker 26.1 with IPv6 (cc @robmry)

One change we made is to not-disable IPv6 on the loopback interface just because a container isn't (yet) connected to an IPv6-enabled network. But, if the kernel hasn't added a ::1 to the loopback interface in the first place, we take that as a signal that IPv6 is disabled on the host, or for the container using --sysctl net.ipv6.conf.all.disable_ipv6=1, or similar. We shouldn't be doing anything to try to enable IPv6 at that point.

Is there anything in the nginx config that's explicitly enabling IPv6 or asking it to listen on ::? From a glance at the project's Dockerfile, I think this is nginx installed in an alpine container ... I just tried that with IPv6 disabled in the container, and nginx started, even with listen [::]:80 default_server; left in its default config - but perhaps disabling IPv6 in the kernel would be different.

stickz added a commit to stickz/docker-rtorrent-rutorrent that referenced this issue May 23, 2024
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.
@stickz
Copy link
Contributor

stickz commented May 23, 2024

This is related to the nginx software. I submitted a pull request to resolve the problem. There's no reason to support IPV6 in the first place. IPV6 support was never properly tested and added to rTorrent. IPV4 is required to use the docker container.

@crazy-max
Copy link
Owner

Ah right that makes sense and indeed no need to enable IPv6 within the nginx conf explicitly.

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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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 <djerfy@gmail.com>

* 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 <djerfy@gmail.com>

* 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] <support@github.com>
Signed-off-by: djerfy <djerfy@gmail.com>
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
Co-authored-by: CrazyMax <contact@crazymax.dev>
Co-authored-by: stickz <stickman002@mail.com>
Co-authored-by: Aciel <chaosnated@gmail.com>
Co-authored-by: Jeremy Chabernaud <djerfy@gmail.com>
Co-authored-by: blueberryapple <9259833+blueberryapple@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ac1dburn <colinborins@hotmail.com>
Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Co-authored-by: daschiller <david.schiller@gmx.at>
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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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] <support@github.com>

* 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 <djerfy@gmail.com>

* 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 <djerfy@gmail.com>

* 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] <support@github.com>
Signed-off-by: djerfy <djerfy@gmail.com>
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
Co-authored-by: CrazyMax <contact@crazymax.dev>
Co-authored-by: stickz <stickman002@mail.com>
Co-authored-by: Aciel <chaosnated@gmail.com>
Co-authored-by: Jeremy Chabernaud <djerfy@gmail.com>
Co-authored-by: blueberryapple <9259833+blueberryapple@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ac1dburn <colinborins@hotmail.com>
Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Co-authored-by: daschiller <david.schiller@gmx.at>
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.

4 participants