Support Jammy

Bug #1987367 reported by Eric Chen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
charm-juju-lint
Fix Released
Wishlist
Mert Kirpici

Bug Description

Jammy (22.04) is not available in charmhub now
https://charmhub.io/juju-lint

Tags: bseng-359

Related branches

Eric Chen (eric-chen)
tags: added: bseng-359
Changed in charm-juju-lint:
status: New → Triaged
Changed in charm-juju-lint:
assignee: nobody → Mert Kirpici (mertkirpici)
status: Triaged → In Progress
Changed in charm-juju-lint:
milestone: none → 22.10
Revision history for this message
Mert Kirpici (mertkirpici) wrote :
Download full text (4.6 KiB)

When built on focal and running on jammy, following error occurs during runtime:

Traceback (most recent call last):
  File "/usr/local/bin/auto_lint.py", line 280, in <module>
    main()
  File "/usr/local/bin/auto_lint.py", line 270, in main
    juju_status = loop.run(get_juju_status(auto_lint_config))
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/jasyncio.py", line 118, in run
    raise task.exception()
  File "/usr/local/bin/auto_lint.py", line 80, in get_juju_status
    await model.connect(
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/model.py", line 736, in connect
    await self._connector.connect(**kwargs)
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/client/connector.py", line 74, in connect
    self._connection = await Connection.connect(**kwargs)
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/client/connection.py", line 339, in connect
    await self._connect_with_redirect([_ep])
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/client/connection.py", line 862, in _connect_with_redirect
    login_result = await self._connect_with_login(endpoints)
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/client/connection.py", line 826, in _connect_with_login
    await self._connect(endpoints)
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/client/connection.py", line 776, in _connect
    result = await task
  File "/usr/lib/python3.10/asyncio/tasks.py", line 571, in _wait_for_one
    return f.result() # May raise f.exception().
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/client/connection.py", line 765, in _try_endpoint
    return await self._open(endpoint, cacert)
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/client/connection.py", line 407, in _open
    return (await websockets.connect(
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/websockets/py35/client.py", line 12, in __await_impl__
    transport, protocol = await self._creating_connection
  File "/usr/lib/python3.10/asyncio/base_events.py", line 1089, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "/usr/lib/python3.10/asyncio/base_events.py", line 1107, in _create_connection_transport
    protocol = protocol_factory()
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/websockets/client.py", line 411, in <lambda>
    factory = lambda: create_protocol(
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/websockets/client.py", line 58, in __init__
    super().__init__(**kwds)
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/websockets/protocol.py", line 218, in __init__
    self._drain_lock = asyncio.Lock(loop=loop)
  File "/usr/lib/python3.10/asyncio/locks.py", line 78, in __init__
    super().__init__(loop=loop)
  File "/usr/lib/python3.10/asyncio/mixins.py", line 17, in __init__
    raise TypeError(
TypeError: As of 3.10, the *loop* parameter was removed from Lock() since it is no longer necessary

It is surfacing from a libjuju dependency package `websockets`.

The problem in a nutshell, websockets>=10.0 adds support for python3.10(jammy) and drops
support for python3.6(b...

Read more...

Revision history for this message
Mert Kirpici (mertkirpici) wrote :

In the previous comment I wrote:

> When the charm is built on python3.10(jammy), websockets==10 is installed, which does not support python3.6(bionic). Causing a similar error.

For completeness sake here is the output from that scenario:

Traceback (most recent call last):
  File "/usr/local/bin/auto_lint.py", line 34, in <module>
    from juju import loop # noqa E402
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/loop.py", line 1, in <module>
    from .jasyncio import * # noqa
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/juju/jasyncio.py", line 26, in <module>
    import websockets
  File "/var/lib/juju/agents/unit-juju-lint-0/charm/venv/websockets/__init__.py", line 1
    from __future__ import annotations
    ^
SyntaxError: future feature annotations is not defined

Which incidentally also shows that the previous issue encountered during the jammy support of charm-juju-backup-all has the exact same underlying reason:

https://git.launchpad.net/charm-juju-backup-all/commit/?id=6ec79a51eaf37a776b90c62aafddb5d17645c322

Changed in charm-juju-lint:
status: In Progress → Fix Committed
Changed in charm-juju-lint:
status: Fix Committed → 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.