Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-thespian for openSUSE:Factory checked in at 2023-12-08 22:33:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-thespian (Old) and /work/SRC/openSUSE:Factory/.python-thespian.new.25432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-thespian" Fri Dec 8 22:33:25 2023 rev:5 rq:1132082 version:3.10.7 Changes: -------- --- /work/SRC/openSUSE:Factory/python-thespian/python-thespian.changes 2022-10-12 18:25:56.945852985 +0200 +++ /work/SRC/openSUSE:Factory/.python-thespian.new.25432/python-thespian.changes 2023-12-08 22:34:20.561053813 +0100 @@ -1,0 +2,6 @@ +Fri Dec 8 12:23:36 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 3.10.7: + * Fix Issue #70: setting TCP_NODELAY on MacOS sometimes fails + +------------------------------------------------------------------- Old: ---- thespian-3.10.6.zip New: ---- thespian-3.10.7.zip ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-thespian.spec ++++++ --- /var/tmp/diff_new_pack.mkV7bN/_old 2023-12-08 22:34:21.193077068 +0100 +++ /var/tmp/diff_new_pack.mkV7bN/_new 2023-12-08 22:34:21.193077068 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-thespian # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-thespian -Version: 3.10.6 +Version: 3.10.7 Release: 0 Summary: Python Actor concurrency library License: MIT ++++++ thespian-3.10.6.zip -> thespian-3.10.7.zip ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/thespian-3.10.6/PKG-INFO new/thespian-3.10.7/PKG-INFO --- old/thespian-3.10.6/PKG-INFO 2022-01-09 21:01:04.000000000 +0100 +++ new/thespian-3.10.7/PKG-INFO 2023-01-15 23:07:50.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: thespian -Version: 3.10.6 +Version: 3.10.7 Summary: Python Actor concurrency library Home-page: http://thespianpy.com Author: Kevin Quick diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/thespian-3.10.6/doc/releases.org new/thespian-3.10.7/doc/releases.org --- old/thespian-3.10.6/doc/releases.org 2022-01-09 16:02:06.000000000 +0100 +++ new/thespian-3.10.7/doc/releases.org 2023-01-15 22:57:12.000000000 +0100 @@ -10,7 +10,7 @@ #+LATEX_HEADER: \product{Thespian} #+LATEX_HEADER: \component{Python Actor System} #+LATEX_HEADER: \doctype{Release Notes} -#+LATEX_HEADER: \docrev{3.10.6}{2022 Jan 09} +#+LATEX_HEADER: \docrev{3.10.7}{2023 Jan 15} #+LATEX_HEADER: \docid{TheDoc-06} #+OPTIONS: ^:nil num:nil @@ -20,6 +20,15 @@ do not change the API. * Summary + +** 2023 + + | Release | Date | Significant Bugfixes | Significant Features | + |---------+------------+---------------------------------------------------------------+----------------------| + | 3.10.7 | 2023-01-15 | Fix [[https://github.com/thespianpy/Thespian/issues/70][Issue #70]]: setting ~TCP_NODELAY~ on MacOS sometimes fails | | + | | | | | + + ** 2022 | Release | Date | Significant Bugfixes | Significant Features | @@ -186,6 +195,12 @@ ** 3.10 +*** 3.10.7 <2023-01-15 Sun> + + * Fixes issue 70 where spurious connections would not allow setting + ~TCP_NODELAY~ on the incoming socket (probably due to non-TCP connection + attempt or Ipv6 alternate headers). + *** 3.10.6 <2022-01-09 Sun> * Adds Beta support for convention fault tolerance by allowing the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/thespian-3.10.6/setup.py new/thespian-3.10.7/setup.py --- old/thespian-3.10.6/setup.py 2022-01-09 16:02:06.000000000 +0100 +++ new/thespian-3.10.7/setup.py 2023-01-15 22:57:30.000000000 +0100 @@ -2,7 +2,7 @@ setup( name = 'thespian', - version = '3.10.6', + version = '3.10.7', description = 'Python Actor concurrency library', author = 'Kevin Quick', author_email = 'qu...@sparq.org', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/thespian-3.10.6/thespian/system/transport/TCPTransport.py new/thespian-3.10.7/thespian/system/transport/TCPTransport.py --- old/thespian-3.10.6/thespian/system/transport/TCPTransport.py 2022-01-09 15:59:26.000000000 +0100 +++ new/thespian-3.10.7/thespian/system/transport/TCPTransport.py 2023-01-15 22:45:44.000000000 +0100 @@ -856,8 +856,14 @@ intent.socket.setblocking(0) # Disable Nagle to transmit headers and acks asap; our sends # are usually small - intent.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - + try: + intent.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + except OSError as e: + if e.errno == errno.EINVAL: + # See note elsewhere regarding Issue#70. + pass + else: + raise try: intent.socket.connect(*intent.targetAddr .addressDetails.connectArgs) @@ -1344,6 +1350,12 @@ accepted = False try: lsock, rmtTxAddr = self.new_socket(self.socket.accept) + if (lsock.proto != socket.IPPROTO_TCP + or lsock.family != socket.AF_INET + or lsock.type != socket.SOCK_STREAM): + # Spurious connection attempt: ignore + lsock.close() + return accepted = True except (OSError, socket.error) as ex: thesplog('Error accepting incoming: %s', ex) @@ -1354,7 +1366,21 @@ return lsock.setblocking(0) # Disable Nagle to transmit headers and acks asap - lsock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + try: + lsock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + except OSError as e: + if e.errno == errno.EINVAL: + # Issue#70: Some system socket code (e.g. MacOS) does not allow + # this socket option to be set if the socket is not fully setup + # or is being torn down. Not applying this setting can degrade + # performance due to Nagle-algorithm delays since Thespian + # operation usually consists of small packets exchanged in + # handshake manner rather than longer streams of larger data. See + # https://github.com/envoy/proxy/envoy/issues/1446 for additional + # information. + pass + else: + raise # Note that the TCPIncoming is initially None. # Due to the way sockets work, the transmit comes from a # system-selected port that is different from the port that diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/thespian-3.10.6/thespian.egg-info/PKG-INFO new/thespian-3.10.7/thespian.egg-info/PKG-INFO --- old/thespian-3.10.6/thespian.egg-info/PKG-INFO 2022-01-09 21:01:04.000000000 +0100 +++ new/thespian-3.10.7/thespian.egg-info/PKG-INFO 2023-01-15 23:07:50.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: thespian -Version: 3.10.6 +Version: 3.10.7 Summary: Python Actor concurrency library Home-page: http://thespianpy.com Author: Kevin Quick