grossmj
9c988b34d0
Fix snapshots after merging
2026-04-11 19:54:49 +08:00
grossmj
0d3fad8c8f
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/controller/__init__.py
# gns3server/controller/export_project.py
# gns3server/controller/project.py
# gns3server/controller/snapshot.py
# gns3server/crash_report.py
# gns3server/schemas/snapshot.py
# gns3server/static/web-ui/26.34a83d9cee7db39cd0de.js
# gns3server/static/web-ui/index.html
# gns3server/static/web-ui/main.d74d38241f0602d1b3e0.js
# gns3server/version.py
# gns3server/web/route.py
# tests/handlers/api/controller/test_project.py
# tests/handlers/api/controller/test_snapshot.py
2026-04-11 19:22:05 +08:00
grossmj
82f795c9ee
Add some additional tests
2026-04-10 19:50:42 +08:00
grossmj
274cef6cf5
Add description for snapshots
2026-04-09 20:25:44 +08:00
grossmj
fbea9b655d
Fix issue when restoring a snapshot of a duplicated project
2026-04-08 22:16:47 +08:00
grossmj
6869f2d71d
Snapshot refactoring
2026-04-08 20:02:01 +08:00
Jeremy Grossmann
725cd0428c
Apply suggestion from @Copilot
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-07 17:35:33 +08:00
Jeremy Grossmann
2ce7662c71
Merge branch '3.0' into project-monitoring
2026-04-07 12:58:56 +08:00
Cristi
104f56cb55
Enhancement: Refresh projects list without restarting the GNS3 server
2026-04-07 00:21:56 +03:00
grossmj
b4edfdb063
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/appliances/infix.gns3a
# gns3server/appliances/juniper-vJunos-router.gns3a
# gns3server/controller/ports/port.py
# gns3server/crash_report.py
# gns3server/utils/asyncio/telnet_server.py
# gns3server/version.py
2026-04-06 23:36:03 +08:00
grossmj
d97aedb625
Fix tests
2026-04-06 20:03:38 +08:00
UmmmAGoodName
4cf8b79692
Fix addressing issue #2005 including tests
2026-04-05 21:51:52 +02:00
Jeremy Grossmann
b222fba42c
Revert "Backport telnetlib3 changes"
2026-04-05 21:58:21 +08:00
Cristi
c739a16d70
Improved exception handling and telnet client disconnect
2026-04-05 13:29:35 +08:00
Cristi
7684ce60ce
Backport: Re-write current Telnet server implementation using telnetlib3 library
2026-04-05 13:29:25 +08:00
Cristi
7f3468dcd3
Improved exception handling and telnet client disconnect
2026-03-24 15:23:00 +02:00
Cristi
83558d4d9f
Enhancement: Re-write current Telnet server implementation using telnetlib3 library
2026-03-24 13:23:45 +02:00
grossmj
667833dda5
Merge remote-tracking branch 'origin/master' into 2.2
2026-03-23 09:38:13 +08:00
Cristi
de1b539fb6
Enhancement Added link type support on the server side
2026-03-17 15:29:58 +02:00
grossmj
0aa6566e50
Prevent router to be duplicated when running and add tests
2026-03-17 12:49:38 +08:00
Jeremy Grossmann
6ac4c27bc1
Merge pull request #2639 from yueguobin/fix/telnet-server-connection-race-condition-3.0
...
Fix/telnet server connection race condition 3.0
2026-03-15 23:01:57 +08:00
Jeremy Grossmann
632b3daab7
Merge pull request #2635 from yueguobin/fix/iou-suspend-405
...
fix(iou): return 405 error for unsupported suspend operation
2026-03-15 22:47:42 +08:00
grossmj
6e7738a14f
Return 405 error for unsupported actions for other node types
2026-03-15 22:38:51 +08:00
Guobin Yue
08b579ff83
Merge branch '3.0' into fix/telnet-server-connection-race-condition-3.0
2026-03-15 01:17:30 +08:00
YueGuobin
e4faf673af
fix(telnet): handle connection race condition during broadcast
...
Fixes two critical issues in telnet server when clients rapidly
connect/disconnect during broadcast operations:
1. **OSError [Errno 107]**: Transport endpoint not connected
- Root cause: getpeername() called outside try block
- Fix: Move getpeername() inside try block and catch OSError
- Expand exception handling to include OSError and TimeoutError
2. **KeyError**: Double deletion from connections dictionary
- Root cause: Connection deleted in broadcast loop, then deleted
again in top-level exception handler
- Fix: Use dict.pop(key, None) instead of del dict[key]
**Changes**:
- Line 216: Add OSError to top-level exception handler
- Line 227-228: Use pop() to avoid KeyError on double deletion
- Line 305-316: Move getpeername() inside try block, expand
exception types, use pop() for safe deletion
**Impact**:
- Prevents unhandled exceptions from propagating to asyncio event loop
- Ensures proper resource cleanup even with race conditions
- No resource leaks or zombie connections
- Long-lived clients unaffected by rapid client disconnects
**Test Script**:
- Added stress test script to reproduce the issue
- Supports IOU-L3, VPCS, and generic device types
- Rapid clients send broadcast-triggering commands (show/run/OSPF)
**Related**: Fixes bug documented in docs/bugs/telnet-server-connection-race-condition.md
2026-03-15 00:19:51 +08:00
Mr.GIitch
302878b391
Merge branch 'GNS3:3.0' into 3.0
2026-03-12 14:44:43 +01:00
grossmj
3abecc8492
Fix IOU tests
2026-03-12 14:18:35 +08:00
grossmj
27ce1a4e25
Merge remote-tracking branch 'origin/2.2' into 3.0
...
# Conflicts:
# gns3server/schemas/iou_template.py
# tests/handlers/api/compute/test_iou.py
# tests/handlers/api/controller/test_template.py
2026-03-12 14:11:05 +08:00
UmmmAGoodName
4a45a68703
Changed errors to new type, was causing warnings
2026-03-11 18:48:36 +01:00
grossmj
0624c1b945
Deactivate 'use default IOU values' by default and update RAM/NVRAM values
2026-03-10 20:28:00 +08:00
grossmj
4606613673
Fix image handling
2026-03-05 12:38:28 +08:00
grossmj
8b245c96f8
Qemu VMs: only compute MD5 checksums for existing disks
2026-03-04 18:54:52 +08:00
Mark Paronyan
c48c89d309
tests(compute): test compute works with disabled auth
2026-03-03 00:30:00 +03:00
Mark Paronyan
0da1a6639a
tests(controller,port): short_name finishes successfully when port name is None
2026-02-28 21:45:08 +03:00
grossmj
47a7324eb5
Fix tests
2026-02-25 19:00:57 +08:00
grossmj
4d35477e46
Add/fix tests
2026-02-23 23:27:36 +08:00
grossmj
be4b87e8cd
Update project schema and fix tests
2026-02-22 18:13:08 +08:00
Felix Schulz
8ab34924b5
Add 'created_by' field to track project creator
2026-02-21 22:15:21 +01:00
grossmj
5e3ca29c58
Fix updating packet filters
2026-02-21 21:42:22 +08:00
grossmj
c5b9f379fe
Merge remote-tracking branch 'origin/2.2' into 3.0
...
# Conflicts:
# Dockerfile
# dev-requirements.txt
# gns3server/compute/qemu/qemu_vm.py
# gns3server/version.py
# requirements.txt
2026-02-20 16:28:53 +08:00
grossmj
715b7032bc
Fix tests
2026-02-20 15:51:49 +08:00
grossmj
abaeab6242
Upgrade greenlet and sqlalchemy dependencies
2026-01-26 19:50:42 +08:00
grossmj
1d45df6613
Upgrade dependencies
2026-01-24 21:38:58 +08:00
grossmj
60c10e7ecc
Merge remote-tracking branch 'origin/2.2' into 3.0
...
# Conflicts:
# .github/workflows/testing.yml
# CHANGELOG
# README.md
# gns3server/appliances/infix.gns3a
# gns3server/compute/docker/__init__.py
# gns3server/compute/docker/docker_vm.py
# gns3server/crash_report.py
# gns3server/version.py
# gns3server/web/web_server.py
# setup.py
# tests/controller/test_project.py
2025-11-29 11:42:02 +10:00
grossmj
f2aaf5ab38
Docker API version requirements and process to handle older daemons
2025-11-17 22:26:18 +10:00
grossmj
942f021b58
Fix test_config.py
2025-11-17 11:26:06 +10:00
grossmj
bae6221991
Set name of container in Docker
2025-11-17 10:59:05 +10:00
grossmj
c67ba6da0d
Fix config tests
2025-11-17 10:21:12 +10:00
grossmj
4d23ca221f
Comment out some tests in test_project.py
2025-11-16 20:52:14 +10:00
grossmj
232b9c2806
Fix tests
2025-05-25 17:35:45 +02:00