← Back to issue list

Unable to import rock into the docker daemon when packing with python plugin and staging python3-dev

View original Github issue

Metadata

Project
rockcraft
Number
#194
Type
issue
State
closed
Author
arturo-seijas
Labels
—
Created
Updated
Closed

Current evaluation

Fixed by PR #200 (commit 3f43e30e), which corrected OCI handling of subdirectories under usrmerge and prevented conflicting Python symlinks from corrupting the rock.

Resolution: closed resolved

Reason: The problem was traced to Rockcraft's usrmerge handling colliding with symlinks created by the Python plugin. PR #200, commit 3f43e30e, fixed handling of usrmerge subdirectories and resolved the import failure.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Hi! I've just noticed `skopeo` fails to import the resulting rock when packing with the python plugin: ``` name: indico summary: Indico rock description: Indico OCI image for the Indico charm version: "1.0" base: ubuntu:22.04 build-base: ubuntu:22.04 license: Apache-2.0 platforms: amd64: parts: indico: stage-packages: - python3-dev - python3-venv source: plugins plugin: python ``` `skopeo --insecure-policy copy oci-archive:indico_1.0_amd64.rock docker-daemon:localhost:32000/indico:latest` seems to execute successfully but when I run `docker image ls` there are no results. However, it works if I change the plugin: ``` name: indico summary: Indico rock description: Indico OCI image for the Indico charm version: "1.0" base: ubuntu:22.04 build-base: ubuntu:22.04 license: Apache-2.0 platforms: amd64: parts: indico: stage-packages: - python3-dev - python3-venv source: plugins plugin: nil ``` After some changes in my rockcraft.yaml to provide a narrower use case, I noticed the following does work with the python plugin, so this likely has to do with the staged packages, either python3-dev or pythone-venv: ``` name: indico summary: Indico rock description: Indico OCI image for the Indico charm version: "1.0" base: ubuntu:22.04 build-base: ubuntu:22.04 license: Apache-2.0 platforms: amd64: parts: indico: stage-packages: - build-essential source: plugins plugin: python ``` Let me know if there's anything else you'd like me to provide in order to pinpoint the issue. Thank you

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Fixed by PR #200 (commit 3f43e30e), which corrected OCI handling of subdirectories under usrmerge and prevented conflicting Python symlinks from corrupting the rock.
stealth/space-bunny-alpha — closed stale Closed after diagnosis of duplicate layer paths caused by usrmerge/Python virtualenv symlink conflicts; no resolving PR or release was identified.
qwen/qwen3.6-35b-a3b — — Closed after identifying the root cause: duplicate file paths caused by a conflict between Rockcraft's usrmerge handling and the Python plugin's virtual environment symlinks.
qwen/qwen3.6-35b-a3b — — Closed after identifying a symlink conflict between usrmerge and the Python plugin that creates duplicate paths in image layers, blocking Docker import. Resolution requires updating Rockcraft's staging logic to avoid overwriting existing base paths.
qwen/qwen3.6-35b-a3b — — Closed without a fix. Root cause identified as symlink conflicts between the Python plugin and base image usrmerge handling, which create duplicate paths and break skopeo imports.
qwen3.6-35b-a3b-mtp-q6 — — Closed after root cause analysis identified a usrmerge and Python plugin symlink conflict causing duplicate tar paths, blocking skopeo imports. Requires a fix to rockcraft's staging path deduplication logic.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/rockcraft#200 (confidence 99%)

    Merged commit 3f43e30e fixes OCI handling of subdirectories in usrmerge, matching the diagnosed cause.

Related issues

Issue Project State Summary Similarity
#228 Conflicting files when packing a ROCK with overlay-packages on an ubuntu base rockcraft closed Usrmerge file collisions between overlay-packages and stage-packages on an Ubuntu base broke `rockcraft pack`. Fixed by merged PR #231 (commit 5ec8b09f), which allows identical files at colliding OCI paths.
72%