Bug#1033970: unblock: src:python-nbxmpp/4.2.2-2
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Dear release team,
I like to get clearance for uploading python-nbxmpp 4.2.2-2 to unstable, to get
it into bookworm. 4.2.2-1 is already uploaded to experimental. The
package has extensive autopkgtests. debdiff attached.
Upstream release text:
> * HTTP: Reset attributes on redirect (#141)
> * HTTP: Make sure streams are closed only once (#139)
Thanks in advance & Cheers
diff -Nru python-nbxmpp-4.2.0/ChangeLog python-nbxmpp-4.2.2/ChangeLog
--- python-nbxmpp-4.2.0/ChangeLog 2023-02-05 16:23:56.000000000 +0000
+++ python-nbxmpp-4.2.2/ChangeLog 2023-03-25 16:33:26.000000000 +0000
@@ -1,3 +1,15 @@
+nbxmpp 4.2.2 (25 Mar 2023)
+
+ Bug Fixes
+
+ * HTTP: Reset attributes on redirect (#141)
+
+nbxmpp 4.2.1 (18 Mar 2023)
+
+ Bug Fixes
+
+ * HTTP: Make sure streams are closed only once (#139)
+
nbxmpp 4.2.0 (05 Feb 2023)
New
diff -Nru python-nbxmpp-4.2.0/debian/changelog python-nbxmpp-4.2.2/debian/changelog
--- python-nbxmpp-4.2.0/debian/changelog 2023-02-06 19:54:25.000000000 +0000
+++ python-nbxmpp-4.2.2/debian/changelog 2023-04-05 07:26:16.000000000 +0000
@@ -1,3 +1,9 @@
+python-nbxmpp (4.2.2-1) experimental; urgency=medium
+
+ * New upstream bug fix release (solves HTTP issues)
+
+ -- Martin <debacle@debian.org> Wed, 05 Apr 2023 07:26:16 +0000
+
python-nbxmpp (4.2.0-1) unstable; urgency=medium
* New upstream release
diff -Nru python-nbxmpp-4.2.0/nbxmpp/__init__.py python-nbxmpp-4.2.2/nbxmpp/__init__.py
--- python-nbxmpp-4.2.0/nbxmpp/__init__.py 2023-02-05 16:23:56.000000000 +0000
+++ python-nbxmpp-4.2.2/nbxmpp/__init__.py 2023-03-25 16:33:26.000000000 +0000
@@ -3,4 +3,4 @@
from .protocol import * # pylint: disable=wrong-import-position
-__version__: str = '4.2.0'
+__version__: str = '4.2.2'
diff -Nru python-nbxmpp-4.2.0/nbxmpp/http.py python-nbxmpp-4.2.2/nbxmpp/http.py
--- python-nbxmpp-4.2.0/nbxmpp/http.py 2023-02-05 16:23:56.000000000 +0000
+++ python-nbxmpp-4.2.2/nbxmpp/http.py 2023-03-25 16:33:26.000000000 +0000
@@ -276,6 +276,7 @@
self._message.connect('content-sniffed', self._on_content_sniffed)
self._message.connect('got-body', self._on_got_body)
+ self._message.connect('restarted', self._on_restarted)
self._message.connect('finished', self._on_finished)
soup_session = self._session.get_soup_session()
@@ -431,6 +432,12 @@
self._log.info('Body received')
self._body_received = True
+ def _on_restarted(self, _message: Soup.Message) -> None:
+ self._log.info('Restarted')
+ self._body_received = False
+ self._response_content_type = ''
+ self._response_content_length = 0
+
def _on_finished(self, _message: Soup.Message) -> None:
self._log.info('Message finished')
if not self._body_received:
@@ -483,13 +490,24 @@
self._cleanup()
def _close_all_streams(self) -> None:
- if self._input_stream is not None:
- if not self._input_stream.is_closed():
- self._input_stream.close(None)
-
- if self._output_stream is not None:
- if not self._output_stream.is_closed():
- self._output_stream.close(None)
+ # stream.close() will invoke signals on the Message object
+ # which in turn can lead to this method called again in the
+ # same Mainloop iteration. This means is_closed() will not
+ # return True and we get an GLib.IOError.PENDING error.
+
+ input_stream = self._input_stream
+ output_stream = self._output_stream
+
+ self._input_stream = None
+ self._output_stream = None
+
+ if input_stream is not None:
+ if not input_stream.is_closed():
+ input_stream.close(None)
+
+ if output_stream is not None:
+ if not output_stream.is_closed():
+ output_stream.close(None)
def _cleanup(self) -> None:
self._log.info('Run cleanup')
@@ -501,9 +519,6 @@
del self._session
del self._user_data
- self._input_stream = None
- self._output_stream = None
-
if self._timeout_id is not None:
GLib.source_remove(self._timeout_id)
self._timeout_id = None
Reply to: