← Back to issue list

Abstract socket in listen-stream cause validation failure

View original Github issue

Metadata

Project
snapcraft
Number
#4287
Type
issue
State
closed
Author
phckopper
Labels
—
Created
Updated
Closed

Current evaluation

Fixed by merged PR #4354, which updated socket validation to accept abstract-namespace listen-stream addresses and was integrated into the 7.5 hotfix.

Resolution: closed resolved

Reason: PR #4354 was merged into hotfix/7.5, allowing snapd-supported abstract socket addresses in listen-stream validation and resolving the reported failure.

Evaluated by: mr-cal-bot

No scores available.

Issue body

### Bug Description When trying to declare an abstract socket in a `snapcraft.yaml` file it caused validation to fail, even though it's supported by `snapd` [[1]](https://snapcraft.io/docs/snapcraft-app-and-service-metadata) [[2]](https://forum.snapcraft.io/t/socket-activation-support/2050/7). I was able to trace this back to an incomplete regex used for validation that doesn't support the possibility of sockets in abstract namespaces [here](https://github.com/snapcore/snapcraft/blob/dbe76f21d0e670811a05f6fa7838e704bbfaa52d/snapcraft/projects.py#L175-L195). ### To Reproduce Try to build the `snapcraft.yaml` file with `snapcraft -v`. ### Environment Ubuntu 23.04, snapcraft 7.4.3 ### snapcraft.yaml ```shell name: lldpad base: core22 confinement: devmode description: 'Redacted' summary: Link Layer Discovery Protocol Implementation (Runtime) version: 1.1+git20221028.aa18720-1-snap parts: lldpad: plugin: nil stage-packages: - lldpad apps: lldpad: command: /usr/sbin/lldpad daemon: simple plugs: - network-bind - browser-support sockets: unix: listen-stream: "@snap.lldpad./com/intel/lldpad" ``` ### Relevant log output ```shell Starting Snapcraft 7.4.3 Logging execution to '/home/phckopper/.local/state/snapcraft/log/snapcraft-20230719-203033.689783.log' Running on amd64 for amd64 Bad snapcraft.yaml content: - '@snap.lldpad./com/intel/lldpad' is not a valid socket path (e.g. /tmp/mysocket.sock). (in field 'apps.lldpad.sockets.unix.listen-stream') Full execution log: '/home/phckopper/.local/state/snapcraft/log/snapcraft-20230719-203033.689783.log ``` ### Additional context [How snapd validates internally](https://github.com/snapcore/snapd/blob/876953a4a80ee319aa4e175eaf81b0eefec6748c/snap/validate.go#L202)

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Fixed by merged PR #4354, which updated socket validation to accept abstract-namespace listen-stream addresses and was integrated into the 7.5 hotfix.
stealth/space-bunny-alpha — closed resolved Fixed by merged PR #4354 (commit 061b4f0f8), allowing abstract @snap.* Unix listen-stream addresses accepted by snapd.
stealth/space-bunny-alpha — closed resolved Fixed by PR #4354, merged into hotfix/7.5, allowing snapd-supported abstract socket addresses in listen-stream validation.
stealth/space-bunny-alpha — closed resolved Abstract Unix socket validation was fixed by merged PR #4354, updating the path pattern to accept listen-stream sockets in abstract namespaces.
qwen/qwen3.6-35b-a3b — — Abstract Unix socket paths in listen-stream failed validation due to an incomplete regex. The issue was resolved via PR #4354, which updated the validation pattern to support abstract namespaces.
qwen/qwen3.6-35b-a3b — — Fixed validation failure for abstract Unix sockets by updating the socket path regex. Resolved via hotfix pull request #4354.
qwen/qwen3.6-35b-a3b — — Validation failure for abstract sockets in listen-stream was fixed by updating the socket path regex. Resolved via hotfix PR #4354.
qwen/qwen3.6-35b-a3b — — Fixed validation failure for abstract socket paths in listen-stream by updating the regex. Resolved via hotfix PR #4354.
qwen3.6-35b-a3b-mtp-q6 — — Abstract socket paths in listen-stream failed validation due to an incomplete regex. The bug was fixed when a hotfix updating the validation logic was merged via pull request #4354.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/snapcraft#4354 (confidence 100%)

    The merged fix added support for abstract socket listen-streams and closed #4287.

Related issues

Issue Project State Summary Similarity
#4354 fix: support abstract socket listen-streams snapcraft merged Merged PR #4354 added abstract-socket listen-stream validation, fixing #4287, and was integrated into hotfix/7.5 via 8c01788.
83%