The bug seems to be stemming from a conflict of wrong HTTP request
formatting of apport package and the latest version upgrade of multipart
package on Launchpad.

The current version of multipart package is strict in its input request
criteria, requiring the standard HTTP1.1 format, and rejecting any
request that doesn’t fit the standard
https://github.com/defnull/multipart/issues/55 . One of those standards
is the line breaks, which are enforced to be CRLF, as can be seen here
https://www.rfc-editor.org/rfc/rfc2616#section-2.2 .

The apport package meanwhile uses LF line endings in its HTTP requests
to Launchpad, which is done in its /crashdb_impl/launchpad.py file in
the upload_blob method (in line:1198) when the request was being
constructed and sent. Because of the wrong line break, the request fails
to parse properly on Launchpad and the returned response is broken for
the same reason which triggers the assert statement.

One of the simplest ways of solving this problem would be to update the
request creation part of the script to fit the HTTP1.1 standard and
change LF line breaks into CRLF line breaks. Even a simple req.data =
req.data.replace(b‘\n’, b’\r\n’) would work in the simplest cases, but a
more generalized approach would be preferred.

** Bug watch added: github.com/defnull/multipart/issues #55
   https://github.com/defnull/multipart/issues/55

-- 
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/launchpad/+bug/2096327/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to