mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-08-27 12:30:13 +03:00
Add project memory: Docker container stop delay analysis
This commit is contained in:
parent
e8e1930e0b
commit
fb1a5a3385
@ -24,3 +24,6 @@
|
||||
|
||||
### uBridge Permission
|
||||
- **[uBridge Permission Issue](./gns3-ubridge-permission.md)** - Docker containers fail to start due to missing CAP_NET_ADMIN/CAP_NET_RAW capabilities on uBridge
|
||||
|
||||
### Docker Container Stop Delay
|
||||
- **[Docker Container Stop Delay](./docker-container-stop-delay.md)** - Some containers take ~5s to stop because they don't handle SIGTERM (AlpiNet, OstinatoWireshark)
|
||||
|
||||
41
.claude/memory/docker-container-stop-delay.md
Normal file
41
.claude/memory/docker-container-stop-delay.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
name: docker-container-stop-delay
|
||||
description: Docker containers not responding to SIGTERM cause ~5s stop delays when closing a project
|
||||
metadata:
|
||||
type: reference
|
||||
---
|
||||
|
||||
# Docker Container Stop Delay Analysis
|
||||
|
||||
## Background
|
||||
When stopping a GNS3 project, some Docker containers take ~5s to exit while others stop instantly.
|
||||
|
||||
## Root Cause
|
||||
Docker's `stop` command sends SIGTERM and waits `t` seconds (GNS3 sets `t=5`) before sending SIGKILL. Containers that don't handle SIGTERM are stuck waiting for the full timeout.
|
||||
|
||||
## Affected Containers
|
||||
|
||||
| Container | PID 1 | Why it's slow |
|
||||
|-----------|-------|---------------|
|
||||
| **AlpiNet** (alpine) | `dumb-init` → `bash -i` | Interactive bash ignores SIGTERM by design |
|
||||
| **OstinatoWireshark** | `bash` (PID 1) | Linux kernel won't apply default signal actions to PID 1 without an explicit handler; interactive bash doesn't install one |
|
||||
|
||||
## Normal Containers (for comparison)
|
||||
|
||||
| Container | PID 1 | Why fast |
|
||||
|-----------|-------|----------|
|
||||
| Chromium | `/usr/bin/chromium` | Chromium handles SIGTERM natively |
|
||||
| webterm | `dumb-init` → firefox | Firefox responds to SIGTERM immediately |
|
||||
|
||||
## Related Files
|
||||
- `gns3-registry/docker/alpinet/Dockerfile`
|
||||
- `gns3-registry/docker/ostinato-wireshark/Dockerfile`
|
||||
- `gns3-registry/docker/ostinato-wireshark/entry.sh`
|
||||
- `gns3-registry/docker/chromium/Dockerfile`
|
||||
- `gns3-registry/docker/ipterm/web/Dockerfile`
|
||||
- `gns3-server/gns3server/compute/docker/docker_vm.py:1040` — stop timeout parameter `t=5`
|
||||
|
||||
## Note
|
||||
This is not a GNS3 server bug (except a minor `or` vs `and` logic issue at `docker_vm.py:1037` which doesn't affect behavior). The root cause is in the Docker images themselves.
|
||||
|
||||
See also: [[docker-container-stop-delay]]
|
||||
Loading…
x
Reference in New Issue
Block a user