Opened 7 years ago

Last modified 12 days ago

#350 new Bug / Defect

starting openvpn with --inetd from terminal will make it loop forever

Reported by: Gert Döring Owned by: Gert Döring
Priority: minor Milestone: release 2.4
Component: Generic / unclassified Version: OpenVPN git master branch (Community Ed)
Severity: Not set (select this one, unless your'e a OpenVPN developer) Keywords:
Cc: plaisthos

Description

Starting openvpn with "--inetd" from a shell ("to see if the rest of the options are fine") will make it loop forever, printing error messages once a second...

Nov 26 13:26:07 gentoo openvpn[14099]: TCP: accept(3) failed: Socket operation on non-socket (errno=88)
Nov 26 13:26:08 gentoo openvpn[14099]: TCP: accept(3) failed: Socket operation on non-socket (errno=88)

... we might handle this more gracefully...

(Revisit after dual-stack patches have been fully merged)

Change History (6)

comment:1 Changed 5 years ago by Samuli Seppänen

cron2: can this be reproduced on latest Git "master"?

comment:2 Changed 5 years ago by Gert Döring

Yes, still broken.

May 28 12:39:05 blue openvpn[30979]: OpenVPN 2.3_git [git:master/da9b292733e929a2+] i686-pc-linux-gnu [SSL (OpenSSL)] [LZO] [SNAPPY] [LZ4] [EPOLL] [MH] [IPv6] built on May 26 2015
May 28 12:39:11 blue openvpn[30979]: TCP: accept(3) failed: Socket operation on non-socket (errno=88)
May 28 12:39:40 blue last message repeated 29 times

(both on 2.3 and git master)

comment:3 Changed 4 years ago by Gert Döring

Milestone: release 2.4

most likely trivially fixed...

comment:4 Changed 13 days ago by Gert Döring

still a thing...

Sep  8 12:11:04 gentoo openvpn[23339]: TCP: getpeername() failed: Socket operation on non-socket (errno=88)
Sep  8 12:11:04 gentoo openvpn[23339]: TCP: accept(4) failed: Socket operation on non-socket (errno=88)
Sep  8 12:11:05 gentoo openvpn[23339]: TCP: getpeername() failed: Socket operation on non-socket (errno=88)
Sep  8 12:11:05 gentoo openvpn[23339]: TCP: accept(4) failed: Socket operation on non-socket (errno=88)

comment:6 Changed 12 days ago by Gert Döring

*sigh*

The patch above fixes --inetd nowait mode (= TCP), but not UDP.

UDP mode can be tested (and broken) much easier - just call "openvpn --inetd --dev tap" and press return... and then see the CPU explode. Syslog shows why...

Sep  9 09:26:49 blue2 openvpn[23990]: read UDP: Socket operation on non-socket (code=88)
Sep  9 09:26:51 blue2 last message repeated 477309 times

Anyway, patch for TCP is merged

commit a09a2fadbadb5dc435f6fccc581163e1f637f43f (master)
commit 05050e7d089e382e0e8bc7565f30e02e2246d569 (release/2.5)
commit 769c894db29f76f6510569fc20633fb6f0c357f9 (release/2.4)
Author: Gert Doering
Date: Tue Sep 8 12:51:30 2020 +0200

Fix error detection / abort in --inetd corner case.

Note: See TracTickets for help on using tickets.