** Description changed: + [ Impact ] + + The apport code, through the use of Python's `email` package, isn't HTTP + 1.1 compliant when crafting the payload to the LP +storeblob endpoint, + using LF as a line separator rather than CRLF. + + A recent update to the `multipart` dependency of LP made it stricter + when parsing this kind of payload, making any attempt to file a bug + through Apport (e.g. `ubuntu-bug foo`) fail miserably. + + The issue was worked around by rolling back that update, but it's not a + longterm solution, as it's probably better for everyone if LP stays + up-to-date on its dependencies. + + This impacts 24.04.2 as the workaround needs to stay in place as long as + our "default" ISOs ship a buggy apport. + + [ Test plan ] + + The newer version of `multipart` is still deployed on the qastaging LP + instance, which makes testing the fix fairly simple. + + We're using the chaos-marmosets package since it's maintained by members + of the Apport team so nobody should be too annoyed by the noise. + + ``` + # File a bug in qastaging, and manually inspect the contents of the attached files + APPORT_LAUNCHPAD_INSTANCE=qastaging ubuntu-bug chaos-marmosets + + # Do the same on the prod instance as a control experiment. + # Don't forget to close the bug afterwards ;) + ubuntu-bug chaos-marmosets + ``` + + [ Where problems could occur ] + + Fixing the problem with the new dependency could regress against the + workaround, which is why the test plan tests against both prod and + qastaging. + + Messing with the way the payload is crafted could potentially corrupt + the attached files, which is why the tester must actually *look* at the + attached data. + + [ Original report ] + The tale is slightly convoluted. After doing an "apt upgrade" yesterday, xsane and simple-scan started failing: scanner detected, but could not scan. Trying to report it with ubuntu-bug then crashed with the following error: $ sudo ubuntu-bug simple-scan Traceback (most recent call last): - File "/usr/share/apport/apport-gtk", line 650, in <module> - app.run_argv() - File "/usr/lib/python3/dist-packages/apport/ui.py", line 917, in run_argv - return self.run_report_bug() - ^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/apport/ui.py", line 740, in run_report_bug - self.file_report() - File "/usr/lib/python3/dist-packages/apport/ui.py", line 1788, in file_report - upthread.exc_raise() - File "/usr/lib/python3/dist-packages/apport/REThread.py", line 67, in exc_raise - raise self._exception[1].with_traceback(self._exception[2]) - File "/usr/lib/python3/dist-packages/apport/REThread.py", line 42, in run - self._retval = self.__target(*self.__args, **self.__kwargs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/apport/crashdb_impl/launchpad.py", line 222, in upload - ticket = upload_blob(blob_file, progress_callback, hostname=self.get_hostname()) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/apport/crashdb_impl/launchpad.py", line 1246, in upload_blob - assert ticket - ^^^^^^ + File "/usr/share/apport/apport-gtk", line 650, in <module> + app.run_argv() + File "/usr/lib/python3/dist-packages/apport/ui.py", line 917, in run_argv + return self.run_report_bug() + ^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/apport/ui.py", line 740, in run_report_bug + self.file_report() + File "/usr/lib/python3/dist-packages/apport/ui.py", line 1788, in file_report + upthread.exc_raise() + File "/usr/lib/python3/dist-packages/apport/REThread.py", line 67, in exc_raise + raise self._exception[1].with_traceback(self._exception[2]) + File "/usr/lib/python3/dist-packages/apport/REThread.py", line 42, in run + self._retval = self.__target(*self.__args, **self.__kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/apport/crashdb_impl/launchpad.py", line 222, in upload + ticket = upload_blob(blob_file, progress_callback, hostname=self.get_hostname()) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/apport/crashdb_impl/launchpad.py", line 1246, in upload_blob + assert ticket + ^^^^^^ AssertionError This is a blocker for me.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2096327 Title: apport cannot upload blobs to launchpad - X-Launchpad-Blob-Token missing from http response -> "assert ticket" To manage notifications about this bug go to: https://bugs.launchpad.net/apport/+bug/2096327/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
