Gerbil having several identical panics then proceeds to start
- Dominant language
- Go
- Stars
- 334
- Forks
- 33
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 7
Description
### Describe the Bug
After spinning up pangolin container stack (pangolin, traefik, gerbil, crowdsec) connections are stopped and a panic can be seeing in the gerbil logs.
shortly after gerbil continues to go about it's business and seems to establish connection with the remote host.
```
redact@redact:~$ sudo docker logs gerbil -f
INFO: 2026/01/14 06:16:14 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
INFO: 2026/01/14 06:16:14 Created WireGuard interface wg0
INFO: 2026/01/14 06:16:14 Assigned IP address 100.89.128.1/24 to interface wg0
INFO: 2026/01/14 06:16:14 Attempting to delete existing MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:16:14 Attempting to delete existing MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:16:14 Attempting to delete existing MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:16:14 Adding MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:16:14 Successfully added and verified MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:16:14 Adding MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:16:14 Successfully added and verified MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:16:14 Adding MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:16:14 Successfully added and verified MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:16:14 WireGuard interface wg0 created and configured
INFO: 2026/01/14 06:16:14 Received initial mappings: {"mappings":{}}
INFO: 2026/01/14 06:16:14 Loaded 0 initial proxy mappings
INFO: 2026/01/14 06:16:14 UDP server listening on :21820
INFO: 2026/01/14 06:16:14 Starting HTTP server on :3004
2026/01/14 06:23:36 Stopping SNI Proxy...
2026/01/14 06:23:36 All connections closed gracefully
2026/01/14 06:23:36 SNI Proxy stopped
INFO: 2026/01/14 06:23:36 Context cancelled, shutting down
panic: close of closed channel
goroutine 1 [running]:
github.com/fosrl/gerbil/relay.(*UDPProxyServer).Stop(0xc0001f8000)
/app/relay/relay.go:237 +0x99
main.main()
/app/main.go:420 +0x217a
INFO: 2026/01/14 06:23:53 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:23:53 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:23:53 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:23:58 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:23:58 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp 172.19.0.3:3001: connect: connection refused
ERROR: 2026/01/14 06:23:58 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp 172.19.0.3:3001: connect: connection refused
INFO: 2026/01/14 06:24:03 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
INFO: 2026/01/14 06:24:03 Created WireGuard interface wg0
INFO: 2026/01/14 06:24:03 Assigned IP address 100.89.128.1/24 to interface wg0
INFO: 2026/01/14 06:24:03 Attempting to delete existing MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:24:03 Attempting to delete existing MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:24:03 Attempting to delete existing MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:24:03 Adding MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:24:03 Successfully added and verified MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:24:03 Adding MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:24:03 Successfully added and verified MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:24:03 Adding MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:24:03 Successfully added and verified MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:24:03 WireGuard interface wg0 created and configured
INFO: 2026/01/14 06:24:03 Received initial mappings: {"mappings":{}}
INFO: 2026/01/14 06:24:03 Loaded 0 initial proxy mappings
INFO: 2026/01/14 06:24:03 UDP server listening on :21820
INFO: 2026/01/14 06:24:03 Starting HTTP server on :3004
2026/01/14 06:31:54 Stopping SNI Proxy...
2026/01/14 06:31:54 All connections closed gracefully
2026/01/14 06:31:54 SNI Proxy stopped
INFO: 2026/01/14 06:31:55 Context cancelled, shutting down
panic: close of closed channel
goroutine 1 [running]:
github.com/fosrl/gerbil/relay.(*UDPProxyServer).Stop(0xc000152280)
/app/relay/relay.go:237 +0x99
main.main()
/app/main.go:420 +0x217a
INFO: 2026/01/14 06:32:42 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:32:42 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:32:42 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:32:47 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:32:47 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:32:47 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:32:52 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:32:52 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:32:52 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:32:57 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:32:57 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:32:57 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:02 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:02 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:02 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:07 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:07 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:07 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:12 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:12 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:12 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:17 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:17 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:17 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:22 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:22 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:22 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:27 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:27 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:27 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:32 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:32 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:32 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:37 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:37 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
ERROR: 2026/01/14 06:33:37 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp: lookup pangolin on 127.0.0.11:53: no such host
INFO: 2026/01/14 06:33:42 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
ERROR: 2026/01/14 06:33:42 Error fetching remote config http://pangolin:3001/api/v1/gerbil/get-config: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp 172.19.0.4:3001: connect: connection refused
ERROR: 2026/01/14 06:33:42 Failed to load configuration: Post "http://pangolin:3001/api/v1/gerbil/get-config": dial tcp 172.19.0.4:3001: connect: connection refused
INFO: 2026/01/14 06:33:47 Fetching remote config from http://pangolin:3001/api/v1/gerbil/get-config
INFO: 2026/01/14 06:33:50 Created WireGuard interface wg0
INFO: 2026/01/14 06:33:50 Assigned IP address 100.89.128.1/24 to interface wg0
INFO: 2026/01/14 06:33:50 Attempting to delete existing MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:33:50 Attempting to delete existing MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:33:50 Attempting to delete existing MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:33:50 Adding MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:33:50 Successfully added and verified MSS clamping rule for chain INPUT
INFO: 2026/01/14 06:33:50 Adding MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:33:50 Successfully added and verified MSS clamping rule for chain OUTPUT
INFO: 2026/01/14 06:33:50 Adding MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:33:50 Successfully added and verified MSS clamping rule for chain FORWARD
INFO: 2026/01/14 06:33:50 WireGuard interface wg0 created and configured
INFO: 2026/01/14 06:33:50 Received initial mappings: {"mappings":{}}
INFO: 2026/01/14 06:33:50 Loaded 0 initial proxy mappings
INFO: 2026/01/14 06:33:50 UDP server listening on :21820
INFO: 2026/01/14 06:33:50 Starting HTTP server on :3004
INFO: 2026/01/15 05:27:18 Clearing connections for added peer with WG IP: 100.89.128.4
INFO: 2026/01/15 05:27:18 Cleared 0 connections for WG IP: 100.89.128.4
INFO: 2026/01/15 05:27:18 Peer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= added successfully
INFO: 2026/01/15 05:27:18 Cleared 0 sessions for WG IP: **PUB.LIC.IP.ADDRESS**
```
### Environment
- OS Type & Version: Ubuntu 24.04.3 LTS
- Pangolin Version: fosrl/pangolin:1.14.1
- Gerbil Version: fosrl/gerbil:1.3.0
- Traefik Version: traefik:v3.6
- Newt Version: 1.8.1 **[running on remote server]**
### To Reproduce
I typically notice this behavior occurring when restarting the stack related to pangolin. I restart the container stack directly using the terminal and `sudo docker compose` commands.
Attempted to pull the latest container also to no avail, the error was still present.
### Expected Behavior
i believe this one is pretty clear, the should be no panic.
Contributor guide
Assessment
This issue has not been assessed yet.