Infinite sendto loop
Describe the bug Infinite sendto loop (200000 sendto in 3 sec) OpenVPN is maxing out the CPU and causing a packet storm
To Reproduce I do not know
Version information (please complete the following information):
OS: Ubuntu 24.04 HWE
OpenVPN version:
OpenVPN 2.7.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [COMP_STUB] [EPOLL] [MH/PKTINFO] [AEAD] [DCO] library versions: OpenSSL 3.0.13 30 Jan 2024 DCO version: 6.17.0-35-generic #35~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 19:30:42 UTC 2
Additional context
strace -p 595 -c strace: Process 595 attached
^Cstrace: Process 595 detached % time seconds usecs/call calls errors syscall
71.84 3.137579 13 224467 sendto 28.16 1.229945 5 224467 poll 0.00 0.000007 7 1 getpid
100.00 4.367531 9 448935 total
root@ratty-magenta:~# sudo strace -p 595 strace: Process 595 attached poll([{fd=6, events=POLLOUT}, {fd=5, events=POLLIN|POLLPRI}, {fd=3, events=POLLIN|POLLPRI}], 3, 0) = 2 ([{fd=6, revents=POLLOUT}, {fd=5, re vents=POLLIN|POLLERR}]) sendto(6, " +?\331\0316\252Y\271\4\0\0\0\10\0\0\0\7\0\0\0\f\0\0\0\v\370\263(\230{\206"..., 1222, 0, {sa_family=AF_INET, sin_port=htons(3467 8), sin_addr=inet_addr("46.31.30.53")}, 16) = 1222 poll([{fd=6, events=POLLOUT}, {fd=5, events=POLLIN|POLLPRI}, {fd=3, events=POLLIN|POLLPRI}], 3, 0) = 2 ([{fd=6, revents=POLLOUT}, {fd=5, re vents=POLLIN|POLLERR}]) sendto(6, " +?\331\0316\252Y\271\4\0\0\0\10\0\0\0\7\0\0\0\f\0\0\0\v\370\263(\230{\206"..., 1222, 0, {sa_family=AF_INET, sin_port=htons(3467 8), sin_addr=inet_addr("46.31.30.53")}, 16) = 1222 poll([{fd=6, events=POLLOUT}, {fd=5, events=POLLIN|POLLPRI}, {fd=3, events=POLLIN|POLLPRI}], 3, 0) = 2 ([{fd=6, revents=POLLOUT}, {fd=5, re vents=POLLIN|POLLERR}]) sendto(6, " +?\331\0316\252Y\271\4\0\0\0\10\0\0\0\7\0\0\0\f\0\0\0\v\370\263(\230{\206"..., 1222, 0, {sa_family=AF_INET, sin_port=htons(3467 8), sin_addr=inet_addr("46.31.30.53")}, 16) = 1222 poll([{fd=6, events=POLLOUT}, {fd=5, events=POLLIN|POLLPRI}, {fd=3, events=POLLIN|POLLPRI}], 3, 0) = 2 ([{fd=6, revents=POLLOUT}, {fd=5, re vents=POLLIN|POLLERR}]) sendto(6, " +?\331\0316\252Y\271\4\0\0\0\10\0\0\0\7\0\0\0\f\0\0\0\v\370\263(\230{\206"..., 1222, 0, {sa_family=AF_INET, sin_port=htons(3467 8), sin_addr=inet_addr("46.31.30.53")}, 16) = 1222 poll([{fd=6, events=POLLOUT}, {fd=5, events=POLLIN|POLLPRI}, {fd=3, events=POLLIN|POLLPRI}], 3, 0) = 2 ([{fd=6, revents=POLLOUT}, {fd=5, re vents=POLLIN|POLLERR}]) sendto(6, " +?\331\0316\252Y\271\4\0\0\0\10\0\0\0\7\0\0\0\f\0\0\0\v\370\263(\230{\206"..., 1222, 0, {sa_family=AF_INET, sin_port=htons(3467 8), sin_addr=inet_addr("46.31.30.53")}, 16) = 1222 poll([{fd=6, events=POLLOUT}, {fd=5, events=POLLIN|POLLPRI}, {fd=3, events=POLLIN|POLLPRI}], 3, 0) = 2 ([{fd=6, revents=POLLOUT}, {fd=5, re vents=POLLIN|POLLERR}])
Source: OpenVPN/openvpn