console-conf errors on Ubuntu Core 24: HTTPConnection.request() got an unexpected keyword argument 'chunked'

Bug #2053016 reported by Valentin David
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
subiquity
Invalid
Undecided
Unassigned
python-requests-unixsocket (Debian)
Fix Released
Unknown
python-requests-unixsocket (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

On Ubuntu Core 24 right now, we are getting the following error when trying to set the network. That has appeared recently.

Traceback (most recent call last):
  File "/usr/bin/console-conf", line 33, in <module>
    sys.exit(load_entry_point('subiquity==0.0.5', 'console_scripts', 'console-conf-tui')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/subiquity/console_conf/cmd/tui.py", line 103, in main
    asyncio.run(run_with_loop())
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/share/subiquity/console_conf/cmd/tui.py", line 101, in run_with_loop
    await interface.run()
  File "/usr/share/subiquity/subiquitycore/tui.py", line 351, in run
    await super().run()
  File "/usr/share/subiquity/subiquitycore/core.py", line 134, in run
    raise exc
  File "/usr/share/subiquity/subiquitycore/tui.py", line 236, in move_screen
    view_or_callable = await self.wait_with_progress(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/subiquity/subiquitycore/tui.py", line 205, in wait_with_progress
    return await self._wait_with_indication(awaitable, self.show_progress)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/subiquity/subiquitycore/tui.py", line 164, in _wait_with_indication
    result = await awaitable
             ^^^^^^^^^^^^^^^
  File "/usr/share/subiquity/subiquitycore/tui.py", line 227, in _move_screen
    return await self.make_view_for_controller(new)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/subiquity/subiquitycore/tui.py", line 131, in make_view_for_controller
    maybe_view = new.make_ui()
                 ^^^^^^^^^^^^^
  File "/usr/share/subiquity/console_conf/controllers/identity.py", line 155, in make_ui
    if get_managed():
       ^^^^^^^^^^^^^
  File "/usr/share/subiquity/console_conf/controllers/identity.py", line 57, in get_managed
    return con.get("v2/system-info").json()["result"]["managed"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/subiquity/subiquitycore/snapd.py", line 49, in get
    return session.get(
           ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 791, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 497, in _make_request
    conn.request(
TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'

Revision history for this message
Olivier Gayot (ogayot) wrote :

Hello Valentin and thank you for your bug report,

It looks like an issue with python-requests-unixsocket. I've been able to reproduce the issue on noble with the following steps:

```python3
import requests_unixsocket

with requests_unixsocket.Session() as session:
    session.get('http+unix://%2Ftmp/')
```

on noble:
TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'

on other Ubuntu versions, e.g., mantic:
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(111, 'Connection refused'))

Upstream change in python-requests: https://github.com/psf/requests/pull/6226

Revision history for this message
Olivier Gayot (ogayot) wrote :
Olivier Gayot (ogayot)
Changed in python-requests-unixsocket (Ubuntu):
assignee: nobody → Olivier Gayot (ogayot)
status: New → In Progress
Revision history for this message
Olivier Gayot (ogayot) wrote :

Adding debdiff, applying a patch that was submitted upstream but not yet merged.

The patch was forwarded to Debian and is currently building in the following PPA: https://launchpad.net/~ogayot/+archive/ubuntu/noble-proposed

Revision history for this message
Olivier Gayot (ogayot) wrote (last edit ):

$ cat > file.py
> import requests_unixsocket
>
> with requests_unixsocket.Session() as session:
> session.get('http+unix://%2Ftmp/')

$ dpkg-query --show python3-requests-unixsocket
python3-requests-unixsocket 0.3.0-3
$ python3 file.py
[...]
TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'

$ dpkg -i dpkg -i ~/python3-requests-unixsocket_0.3.0-3ubuntu1_all.deb
$ python3 file.py
[...]
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionRefusedError(111, 'Connection refused'))

This is as expected.

summary: - Exception on Ubuntu Core 24
+ console-conf errors on Ubuntu Core 24: HTTPConnection.request() got an
+ unexpected keyword argument 'chunked'
Olivier Gayot (ogayot)
Changed in subiquity:
status: New → Invalid
Changed in python-requests-unixsocket (Debian):
status: Unknown → New
Revision history for this message
Dan Bungert (dbungert) wrote :

Will sponsor this

Changed in python-requests-unixsocket (Ubuntu):
assignee: Olivier Gayot (ogayot) → Dan Bungert (dbungert)
Revision history for this message
Dan Bungert (dbungert) wrote :

Uploaded

Changed in python-requests-unixsocket (Ubuntu):
status: In Progress → Fix Committed
assignee: Dan Bungert (dbungert) → nobody
Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python-requests-unixsocket - 0.3.0-3ubuntu2

---------------
python-requests-unixsocket (0.3.0-3ubuntu2) noble; urgency=medium

  * Fix test flakiness due to unread data (LP: #2053154)
    - d/p/0002-fix-HEAD-method-tests.patch

 -- Dan Bungert <email address hidden> Thu, 15 Feb 2024 00:53:56 -0700

Changed in python-requests-unixsocket (Ubuntu):
status: Fix Committed → Fix Released
Changed in python-requests-unixsocket (Debian):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.