fosrl / fosrl/gerbil

Gerbil having several identical panics then proceeds to start

Open
#51 2 comments 2 reactions 1 assignee Claimed by @oschwartz10612 View on GitHub
bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.