mirror of
https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.git
synced 2026-10-14 05:41:56 +00:00
[GH-ISSUE #146] peer_remove_after_dead deadlocks on flush_workqueue(wg-kex) waiting for in-flight wg_packet_handshake_send_worker during peer removal #90
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
amnezia-vpn/amneziawg-linux-kernel-module#90
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @JohnnyVBut on GitHub (Mar 6, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/issues/146
Summary
Calling
awg set <iface> peer <pubkey> removewhile the interface is activelyhandling handshakes causes a kernel deadlock. The process enters D-state
(uninterruptible sleep) in
__flush_workqueueand never returns. The deadlockconsistently reproduces within 2–3 add→remove iterations.
Critically, the deadlock blocks all netlink operations for all interfaces
managed by the
amneziawgmodule — including unrelatedwg showcalls andeven
sshdconnections.Environment
6.8.0-101-generic #101~22.04.1-Ubuntu SMP PREEMPT_DYNAMICamneziawg v1.0.20251009(DKMS,/lib/modules/6.8.0-101-generic/updates/dkms/amneziawg.ko)amneziawg-tools v1.0.20210914Steps to Reproduce