Skip to content

tunnel_server() destroys socket FD, leading to ASSERT() after two SIGUSR1 restarts of a p2mp server (was: twiddling with management-signal and management-disconnect makes the server ASSERT()...) #966

@cron2

Description

@cron2

I guess this can be triggered by an arbitrary SIGUSR1 to the server in "just the right moment" as well.

Master as of today, plus gerrit 1484 (management fixes). udp p2mp server running with management-signal in the config (to test 1484).

I guess the timing was just right - incoming client had just set up some state, but was not yet really fully instantiated, and kaboom

Jan 27 15:05:03 ubuntu2004 tun-udp-p2mp[3345341]: freebsd-14-amd64/udp6:194.97.140.5:17673 peer-id=0 SENT CONTROL [freebsd-14-amd64]: 'PUSH_REPLY,route 10.220.0.0 255.255.0.0,route-ipv6 fd00:abcd:220::/48,tun-ipv6,route-gateway 10.220.2.1,topology subnet,ping 10,ping-restart 30,ifconfig-ipv6 fd00:abcd:220:2::1000/64 fd00:abcd:220:2::1,ifconfig 10.220.2.2 255.255.255.0,peer-id 0,cipher AES-256-GCM,protocol-flags cc-exit tls-ekm dyn-tls-crypt,tun-mtu 1500' (status=1)
Jan 27 15:05:03 ubuntu2004 tun-udp-p2mp[3345341]: freebsd-14-amd64/udp6:194.97.140.5:17673 peer-id=0 UDPv6 WRITE [383] to [AF_INET6]::ffff:194.97.140.5:17673: P_CONTROL_V1 kid=0 [ 4 3 2 1 ] pid=6 DATA len=345
Jan 27 15:05:03 ubuntu2004 tun-udp-p2mp[3345341]: freebsd-14-amd64/udp6:194.97.140.5:17673 peer-id=0 UDPv6 READ [34] from [AF_INET6]::ffff:194.97.140.5:17673: P_ACK_V1 kid=0 [ 6 5 4 3 ] DATA len=0
Jan 27 15:05:04 ubuntu2004 tun-udp-p2mp[3345341]: freebsd-14-amd64/udp6:194.97.140.5:17673 peer-id=0 Data Channel: cipher 'AES-256-GCM', peer-id: 0
Jan 27 15:05:04 ubuntu2004 tun-udp-p2mp[3345341]: freebsd-14-amd64/udp6:194.97.140.5:17673 peer-id=0 Timers: ping 10, ping-restart 60
Jan 27 15:05:04 ubuntu2004 tun-udp-p2mp[3345341]: freebsd-14-amd64/udp6:194.97.140.5:17673 peer-id=0 Protocol options: protocol-flags cc-exit tls-ekm dyn-tls-crypt
Jan 27 15:05:07 ubuntu2004 tun-udp-p2mp-username-cn[1606377]: dco_get_peer_stats_multi
Jan 27 15:05:07 ubuntu2004 tun-udp-p2mp-username-cn[1606377]: dco_get_peer: peer-id -1
Jan 27 15:05:14 ubuntu2004 tun-udp-p2mp[3345341]: MANAGEMENT: Client connected from [AF_INET6]::1:39818
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: MANAGEMENT: CMD 'quit'
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: MANAGEMENT: Client disconnected
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: MANAGEMENT: Reset authentication on disconnect
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: MANAGEMENT: Triggering management signal
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: Throw signal (soft): SIGUSR1 (management-disconnect)
Jan 27 15:05:19 ubuntu2004 kernel: [9074987.803565] tun1: deleting peer with id 0, reason 4
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: dco_get_peer_stats_multi
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: dco_get_peer: peer-id -1
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: ovpn-dco: received netlink message type=32 cmd=5 flags=0000
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: ovpn-dco: received CMD_PEER_DEL_NTF, ifindex: 17581, peer-id 0, reason: 4
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: freebsd-14-amd64/udp6:194.97.140.5:17673 peer-id=0 SIGTERM[soft,ovpn-dco: transport disconnected] received, client-instance exiting
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: Assertion failed at multi.c:568 (!mi->halt)
Jan 27 15:05:19 ubuntu2004 tun-udp-p2mp[3345341]: Exiting due to fatal error

no explict-exit-notify in the server config (mentioning this because EEN would cause different activities on server SIGUSR1).

Metadata

Metadata

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions