Before the patch, the size of the backlog depended on the type of socket (UNIX vs INET) as well as on the language (C vs Python), specifically:
- python used backlog size = 10 for all sockets; - C used 64 for UNIX sockets but 10 for INET sockets. This consolidates the values across the board. It effectively bumps the number of simultaneous connections to python unixctl servers to 64. Also for INET C servers too. The rationale to do it, on top of consistency, is as follows: - fmt_pkt in ovn testsuite is limited by python server listen backlog, and as was found out when adopting the tool, it is sometimes useful to run lots of parallel calls to fmt_pkt unixctl server in some tests. (See [1] for example.) - there is a recent report [2] on discuss@ ML where the reporter noticed significant listen queue overflows in some scenarios (large openstack deployments; happens during leader transition when hundreds of neutron nodes - with dozens of neutron api workers each - simultaneously reconnect to the same northbound leader.) Note: While there is no clear indication that this backlog size bump would resolve the reported issues, it would probably help somewhat. [1] https://github.com/ovn-org/ovn/commit/0baca3e519756cbe98a32526ccc637bb73468743 [2] https://mail.openvswitch.org/pipermail/ovs-discuss/2024-April/053049.html Signed-off-by: Ihar Hrachyshka <ihrac...@redhat.com> Acked-by: Eelco Chaudron <echau...@redhat.com> --- lib/socket-util.c | 2 +- python/ovs/stream.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/socket-util.c b/lib/socket-util.c index 3eb3a3816..2d89fce85 100644 --- a/lib/socket-util.c +++ b/lib/socket-util.c @@ -760,7 +760,7 @@ inet_open_passive(int style, const char *target, int default_port, } /* Listen. */ - if (style == SOCK_STREAM && listen(fd, 10) < 0) { + if (style == SOCK_STREAM && listen(fd, 64) < 0) { error = sock_errno(); VLOG_ERR("%s: listen: %s", target, sock_strerror(error)); goto error; diff --git a/python/ovs/stream.py b/python/ovs/stream.py index 82fbb0d68..dbb6b2e1f 100644 --- a/python/ovs/stream.py +++ b/python/ovs/stream.py @@ -620,7 +620,7 @@ class PassiveStream(object): raise Exception('Unknown connection string') try: - sock.listen(10) + sock.listen(64) except socket.error as e: vlog.err("%s: listen: %s" % (name, os.strerror(e.error))) sock.close() -- 2.41.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev