#1048·openvpn

Infinite sendto loop

Author: GubernievSCreated Jun 9, 2026Updated Sep 5, 2026
Labelsmoreinformationneeded

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}])