APK Randomly failing when using virtual packages
We have randomly experienced errors while using apk to install packages using the `—virtual` fiag. As there was no apparent logic behind the issues we decided to run the same command multiple times, and we realized that the errors seem to be randomly succeeding. We performed the tests using alpine 3.9 and it never raises any error.
The command that allows as to trigger the error is
apk add --no-cache --virtual=.build-deps curl build-base postgresql-dev && apk add --no-cache --virtual=.run-deps libpq && apk add --no-cache --virtual=.webpack-deps nodejs nodejs-npm
I’ve set up a GitLab repository, with parallel pipelines so there can be easily replicated. As you can see, the only jobs that are failing are the ones running alpine 3.10, and the number of failing jobs is totally random
https://gitlab.com/alexviscreanu/test-alpine-build/pipelines/68980751/builds
https://gitlab.com/alexviscreanu/test-alpine-build/pipelines/68980779/builds
https://gitlab.com/alexviscreanu/test-alpine-build/pipelines/68980829/builds
And the error trace always seem to be the same
$ apk add --no-cache --virtual=.build-deps curl build-base postgresql-dev && apk add --no-cache --virtual=.run-deps libpq && apk add --no-cache --virtual=.webpack-deps nodejs nodejs-npm
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
(1/31) Installing ca-certificates (20190108-r0)
(2/31) Installing nghttp2-libs (1.38.0-r0)
(3/31) Installing libcurl (7.65.1-r0)
(4/31) Installing curl (7.65.1-r0)
(5/31) Installing binutils (2.32-r0)
(6/31) Installing libmagic (5.37-r0)
(7/31) Installing file (5.37-r0)
(8/31) Installing gmp (6.1.2-r1)
(9/31) Installing isl (0.18-r0)
(10/31) Installing libgomp (8.3.0-r0)
(11/31) Installing libatomic (8.3.0-r0)
(12/31) Installing libgcc (8.3.0-r0)
(13/31) Installing mpfr3 (3.1.5-r1)
(14/31) Installing mpc1 (1.1.0-r0)
(15/31) Installing libstdc++ (8.3.0-r0)
(16/31) Installing gcc (8.3.0-r0)
(17/31) Installing musl-dev (1.1.22-r2)
(18/31) Installing libc-dev (0.7.1-r0)
(19/31) Installing g++ (8.3.0-r0)
(20/31) Installing make (4.2.1-r2)
(21/31) Installing fortify-headers (1.1-r0)
(22/31) Installing build-base (0.5-r1)
(23/31) Installing pkgconf (1.6.1-r1)
(24/31) Installing openssl-dev (1.1.1c-r0)
(25/31) Installing db (5.3.28-r1)
(26/31) Installing libsasl (2.1.27-r3)
(27/31) Installing libldap (2.4.47-r2)
(28/31) Installing libpq (11.4-r0)
(29/31) Installing postgresql-libs (11.4-r0)
(30/31) Installing postgresql-dev (11.4-r0)
(31/31) Installing .build-deps (20190702.104055)
Executing busybox-1.30.1-r2.trigger
Executing ca-certificates-20190108-r0.trigger
OK: 196 MiB in 45 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
(1/1) Installing .run-deps (20190702.104058)
OK: 196 MiB in 46 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
.webpack-deps (missing):
required by: world[.webpack-deps=20190702.104058]
If we remove the virtual packages everything works fine, but we never had any issue until now. Are we doing something wrong? How can it be explained that it only fails sometimes?
(from redmine: issue id 10648, created on 2019-07-02)
- Changesets:
- Revision b45415b1 by Timo Teräs on 2019-07-02T12:27:57Z:
add: fix virtual package id generation
Fixes 37fbafcd by adding more input to the hash than just second
grained time stamp - collisions would happen when running apk
scripted.
For virtual package the hash works only as unique identifier, so
try to add elements that should make it unique in most cases.
Fixes #10648
- Revision 1b98a2fa98c5af24a6a55cc61a4ff1ba1fa1f34f by Timo Teräs on 2019-07-08T07:56:52Z:
main/apk-tools: cherry-pick fix for #10648
ref #10648
(cherry picked from commit 129e1119ed93b1be7d0c168567a3cd8d3a970978)