← Back to issue list

Charm `dispatch` fails with poetry plugin

View original Github issue

Metadata

Project
charmcraft
Number
#1995
Type
issue
State
closed
Author
carlcsaposs-canonical
Labels
—
Created
Updated
Closed

Current evaluation

Fixed by follow-up PR canonical/charmcraft#2017 (commit 7f238725), which corrected the Poetry-plugin dispatch script after #1972 proved insufficient.

Resolution: closed resolved

Reason: PR #2017 was merged as commit 7f238725 and fixed the remaining dispatch failure for Poetry-plugin charms after the reporter confirmed the earlier fix in #1972 was insufficient.

Evaluated by: mr-cal-bot

No scores available.

Issue body

### Bug Description `dispatch` file generated by charmcraft with poetry plugin fails all juju events ``` ln: failed to create symbolic link '/var/lib/juju/agents/unit-mysql-router-k8s-0/charm/venv/bin/python': No such file or directory ./dispatch: 16: exec: /var/lib/juju/agents/unit-mysql-router-k8s-0/charm/venv/bin/python: not found ``` Discovered after working around #1994 by renaming kubernetes_charm.py to charm.py ### To Reproduce ``` git clone https://github.com/canonical/mysql-router-k8s-operator cd mysql-router-k8s-operator git checkout a0c3fc45b3f1bd71529747103fc6e37403e658d9 charmcraft pack -v juju deploy ./mysql-router-k8s_ubuntu-22.04-amd64.charm --resource mysql-router-image=ghcr.io/canonical/charmed-mysql@sha256:89b8305613f6ce94f78a7c9b4baedef78f2816fd6bc74c00f6607bc5e57bd8e6 juju status ``` juju status shows error ``` juju debug-hooks mysql-router-k8s/0 ``` in other terminal, run `juju resolve mysql-router-k8s/0` ``` # ./dispatch ln: failed to create symbolic link '/var/lib/juju/agents/unit-mysql-router-k8s-0/charm/venv/bin/python': No such file or directory ./dispatch: 16: exec: /var/lib/juju/agents/unit-mysql-router-k8s-0/charm/venv/bin/python: not found ``` ### Environment Ubuntu 22.04 ``` $ snap list Name Version Rev Tracking Publisher Notes charmcraft 3.2.2.post75+gff00a899 5394 3.x/edge canonical✓ classic,held core18 20240920 2846 latest/stable canonical✓ base core20 20240911 2434 latest/stable canonical✓ base core22 20241001 1663 latest/stable canonical✓ base juju 3.5.4 28520 3/stable canonical✓ - lxd 5.0.3-80aeff7 29351 5.0/stable/… canonical✓ - microk8s v1.29.9 7227 1.29-strict/stable canonical✓ - snapd 2.63 21759 latest/stable canonical✓ snapd ``` ### charmcraft.yaml ```yaml # Copyright 2022 Canonical Ltd. # See LICENSE file for licensing details. type: charm bases: - name: ubuntu channel: "22.04" architectures: [amd64] - name: ubuntu channel: "22.04" architectures: [arm64] parts: poetry-deps: plugin: nil build-packages: - curl override-build: | python3 -m pip install --upgrade pip==24.3.1 curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 ln -sf $HOME/.local/bin/poetry /usr/local/bin/poetry foo: plugin: poetry source: . after: - poetry-deps poetry-with: - charm-libs build-snaps: - rustup build-packages: - libffi-dev - libssl-dev - pkg-config override-build: | rustup default stable craftctl default # # files: # plugin: dump # source: . # build-packages: # - git # override-build: | # # Workaround to add unique identifier (git hash) to charm version while specification # # DA053 - Charm versioning # # (https://docs.google.com/document/d/1Jv1jhWLl8ejK3iJn7Q3VbCIM9GIhp8926bgXpdtx-Sg/edit?pli=1) # # is pending review. # python3 -c 'import pathlib; import shutil; import subprocess; git_hash=subprocess.run(["git", "describe", "--always", "--dirty"], capture_output=True, check=True, encoding="utf-8").stdout; file = pathlib.Path("charm_version"); shutil.copy(file, pathlib.Path("charm_version.backup")); version = file.read_text().strip(); file.write_text(f"{version}+{git_hash}")' # # craftctl default # stage: # # Exclude requirements.txt file during staging # # Workaround for https://github.com/canonical/charmcraft/issues/1389 on charmcraft 2 # - -requirements.txt # prime: # - charm_version # - workload_version # - scripts # charm: # build-snaps: # - rustup # build-packages: # - libffi-dev # - libssl-dev # - pkg-config # override-build: | # rustup default stable # # # Convert subset of poetry.lock to requirements.txt # curl -sSL https://install.python-poetry.org | python3 - # /root/.local/bin/poetry export --only main,charm-libs --output requirements.txt # # craftctl default # stage: # # Exclude charm_version file during staging # - -charm_version # charm-strict-dependencies: true # charm-requirements: [requirements.txt] # charm-entrypoint: src/kubernetes_charm.py ``` ### Relevant log output [charmcraft-20241115-112046.686344.log](https://github.com/user-attachments/files/17774740/charmcraft-20241115-112046.686344.log)

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Fixed by follow-up PR canonical/charmcraft#2017 (commit 7f238725), which corrected the Poetry-plugin dispatch script after #1972 proved insufficient.
stealth/space-bunny-alpha — closed resolved Poetry-plugin charm dispatch was fixed by merged PR #2017 (commit 7f238725), following the incomplete fix in PR #1972.
stealth/space-bunny-alpha — closed resolved Fixed by follow-up PR #2017 (commit 7f238725); PR #1972’s earlier dispatch fix was incomplete.
stealth/space-bunny-alpha — closed stale Merged PR #1972 addressed the venv dispatch failure, but the reporter later reproduced it; no verified follow-up resolution was recorded.
qwen3.6-35b-a3b-mtp-q6 — — Claimed fixed in PR #1972, but the reporter confirmed the dispatch file error persists. The issue remains closed without a verified resolution.
qwen/qwen3.6-35b-a3b — — Closed. Reporter noted dispatch script failures with poetry plugin due to missing python symlink. Developer referenced PR #1972 as a fix, but reporter confirmed the issue persists in production. Remains unresolved.
qwen/qwen3.6-35b-a3b — — Claimed fixed in PR #1972, but the reporter disputed the resolution, confirming the dispatch failure persists. The issue was closed without verified resolution.
qwen3.6-35b-a3b-mtp-q6 — — Closed as fixed following merge of PR #1972. The reporter later disputed the resolution, reporting the dispatch error persists.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/charmcraft#2017 (confidence 100%)

    Merged as 7f238725 to correct the generated dispatch script.

  • Related To: canonical/charmcraft#1972 (confidence 100%)

    Earlier fix ad438d60 did not resolve the reported failure.

  • Related To: canonical/charmcraft#1994 (confidence 95%)

    The reporter identified this failure while working around the Poetry plugin entrypoint limitation.

Related issues

Issue Project State Summary Similarity
#2017 fix(dispatch): fix the dispatch script charmcraft merged Merged PR #2017 as commit 7f238725, correcting the dispatch script for Poetry-plugin charms and resolving #1995.
83%