mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-05-19 23:31:50 +02:00
Merge pull request #2706 from alexbelgium/copilot/fix-qbittorrent-wireguard-connection
qbittorrent: Fix WireGuard "RTNETLINK answers: File exists" crash loop on S6 service restart
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
|
||||
## 5.2.0-3 (2026-05-12)
|
||||
- Fix WireGuard "RTNETLINK answers: File exists" crash loop: clean up stale interface and routing rules before re-establishing the tunnel on S6 service restart
|
||||
|
||||
## 5.2.0-2 (2026-05-10)
|
||||
- Fix startup loop on aarch64: drop s6-notifyoncheck wrapper so s6 supervises qbittorrent-nox directly (LSIO arm64 image has no notification-fd, causing EBADF restart loop)
|
||||
|
||||
|
||||
@@ -143,4 +143,4 @@ schema:
|
||||
slug: qbittorrent
|
||||
udev: true
|
||||
url: https://github.com/alexbelgium/hassio-addons
|
||||
version: "5.2.0-2"
|
||||
version: "5.2.0-3"
|
||||
|
||||
@@ -279,6 +279,16 @@ _wireguard_up() {
|
||||
fi
|
||||
done
|
||||
|
||||
# Clean up any leftover state from a previous run (e.g., after an S6 service restart).
|
||||
# Without this, `ip link add` and `ip rule add` fail with "RTNETLINK answers: File exists"
|
||||
# when the svc-qbittorrent service is restarted while the WireGuard interface is still up.
|
||||
if ip link show "${config["Interface"]}" > /dev/null 2>&1; then
|
||||
bashio::log.info "WireGuard interface ${config["Interface"]} already exists. Cleaning up before re-establishing connection."
|
||||
ip link set "${config["Interface"]}" down 2>/dev/null || true
|
||||
ip link del "${config["Interface"]}" 2>/dev/null || true
|
||||
fi
|
||||
_routing_del 2>/dev/null || true
|
||||
|
||||
_cmd "ip link add ${config["Interface"]} type wireguard" || return 1
|
||||
|
||||
mapfile -d ',' -t local_ips < <(echo "${config["Address"]}" | tr -d ' ')
|
||||
|
||||
Reference in New Issue
Block a user