Your message dated Fri, 17 May 2019 12:56:00 +0000
with message-id <[email protected]>
and subject line Re: Bug#929120: unblock: python-amqp/2.4.0-2
has caused the Debian Bug report #929120,
regarding unblock: python-amqp/2.4.0-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
929120: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929120
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock

Dear release team,
Please unblock package python-amqp,

Indeed, my last upload contains the backport of a very important
upstream patch. Without it, OpenStack user may experience:

MessagingTimeout: Timed out waiting for a reply to message ID 
ae039d1695984addbfaaef032ce4fda3

if using RabbitMQ over TLS. I've experienced this myself, this
isn't fun at all.

The patch is rather minimalistic (ie: just 2 lines of code, if
you don't include the fix of the test suite).

Debdiff attached,
Cheers,

Thomas Goirand (zigo)

unblock python-amqp/2.4.0-2
diff -Nru python-amqp-2.4.0/debian/changelog python-amqp-2.4.0/debian/changelog
--- python-amqp-2.4.0/debian/changelog  2019-01-22 15:29:00.000000000 +0100
+++ python-amqp-2.4.0/debian/changelog  2019-05-17 14:26:02.000000000 +0200
@@ -1,3 +1,11 @@
+python-amqp (2.4.0-2) unstable; urgency=medium
+
+  * Add Always_treat_SSLError_timeouts_as_socket_timeouts.patch, which fixes
+    MessagingTimeout: Timed out waiting for a reply to message ID <ID> in
+    OpenStack (and other users).
+
+ -- Thomas Goirand <[email protected]>  Fri, 17 May 2019 14:26:02 +0200
+
 python-amqp (2.4.0-1) unstable; urgency=medium
 
   [ Ondřej Nový ]
diff -Nru 
python-amqp-2.4.0/debian/patches/Always_treat_SSLError_timeouts_as_socket_timeouts.patch
 
python-amqp-2.4.0/debian/patches/Always_treat_SSLError_timeouts_as_socket_timeouts.patch
--- 
python-amqp-2.4.0/debian/patches/Always_treat_SSLError_timeouts_as_socket_timeouts.patch
    1970-01-01 01:00:00.000000000 +0100
+++ 
python-amqp-2.4.0/debian/patches/Always_treat_SSLError_timeouts_as_socket_timeouts.patch
    2019-05-17 14:26:02.000000000 +0200
@@ -0,0 +1,63 @@
+Description: Always treat SSLError timeouts as socket timeouts (#247)
+ Without specifically handling this case, the socket.timeout()
+ was not raised sometimes causing the connection to lock up.
+ .
+ In the case we hit the errno was None, so the previous if
+ condition did not apply.
+Author: Dirk Mueller <[email protected]>
+Date: Thu, 31 Jan 2019 15:07:26 +0100
+Co-Authored-By: aojeagarcia <[email protected]>
+Origin: upstream, 
https://github.com/celery/py-amqp/commit/bf122a05a21a8cc5bca314b0979f32c8026fc66e.patch
+Last-Update: 2019-05-17
+
+Index: python-amqp/amqp/transport.py
+===================================================================
+--- python-amqp.orig/amqp/transport.py
++++ python-amqp/amqp/transport.py
+@@ -374,6 +374,10 @@ class SSLTransport(_AbstractTransport):
+                 try:
+                     s = recv(n - len(rbuf))  # see note above
+                 except socket.error as exc:
++                    # ssl.sock.read may cause a SSLerror without errno
++                    # http://bugs.python.org/issue10272
++                    if isinstance(exc, SSLError) and 'timed out' in str(exc):
++                        raise socket.timeout()
+                     # ssl.sock.read may cause ENOENT if the
+                     # operation couldn't be performed (Issue celery#1414).
+                     if exc.errno in _errnos:
+Index: python-amqp/t/unit/test_transport.py
+===================================================================
+--- python-amqp.orig/t/unit/test_transport.py
++++ python-amqp/t/unit/test_transport.py
+@@ -4,7 +4,7 @@ import errno
+ import socket
+ 
+ import pytest
+-from case import ANY, Mock, call, patch
++from case import ANY, Mock, MagicMock, call, patch
+ 
+ from amqp import transport
+ from amqp.exceptions import UnexpectedFrame
+@@ -600,6 +600,22 @@ class test_SSLTransport:
+                            match=r'.*Server unexpectedly closed 
connection.*'):
+             self.t._read(64)
+ 
++    def test_read_timeout(self):
++        self.t.sock = Mock(name='SSLSocket')
++        self.t._quick_recv = Mock(name='recv', return_value='4')
++        self.t._quick_recv.side_effect = socket.timeout()
++        self.t._read_buffer = MagicMock(return_value='AA')
++        with pytest.raises(socket.timeout):
++            self.t._read(64)
++
++    def test_read_SSLError(self):
++        self.t.sock = Mock(name='SSLSocket')
++        self.t._quick_recv = Mock(name='recv', return_value='4')
++        self.t._quick_recv.side_effect = transport.SSLError('timed out')
++        self.t._read_buffer = MagicMock(return_value='AA')
++        with pytest.raises(socket.timeout):
++            self.t._read(64)
++
+ 
+ class test_TCPTransport:
+ 
diff -Nru python-amqp-2.4.0/debian/patches/series 
python-amqp-2.4.0/debian/patches/series
--- python-amqp-2.4.0/debian/patches/series     2019-01-22 15:29:00.000000000 
+0100
+++ python-amqp-2.4.0/debian/patches/series     2019-05-17 14:26:02.000000000 
+0200
@@ -1,3 +1,4 @@
 0001-Remove-PayPal-image-URLs.patch
 0002-Disable-intersphinx-mapping-for-now.patch
 0010-remove-broken-test.patch
+Always_treat_SSLError_timeouts_as_socket_timeouts.patch

--- End Message ---
--- Begin Message ---
Thomas Goirand:
> Package: release.debian.org
> Severity: normal
> User: [email protected]
> Usertags: unblock
> 
> Dear release team,
> Please unblock package python-amqp,
> 
> Indeed, my last upload contains the backport of a very important
> upstream patch. Without it, OpenStack user may experience:
> 
> MessagingTimeout: Timed out waiting for a reply to message ID 
> ae039d1695984addbfaaef032ce4fda3
> 
> if using RabbitMQ over TLS. I've experienced this myself, this
> isn't fun at all.
> 
> The patch is rather minimalistic (ie: just 2 lines of code, if
> you don't include the fix of the test suite).
> 
> Debdiff attached,
> Cheers,
> 
> Thomas Goirand (zigo)
> 
> unblock python-amqp/2.4.0-2
> 

Unblocked, thanks.
~Niels

--- End Message ---

Reply via email to