Hi Maxim,
I did and the only think I locally came up with to fix some random issues in our own project was:
diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass
index 24b9fe3..f4e3d7a 100644
--- a/meta/classes/dpkg.bbclass
+++ b/meta/classes/dpkg.bbclass
@@ -19,5 +19,6 @@ do_install_builddeps[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}"
# Build package from sources using build script
dpkg_runbuild() {
E="${@ bb.utils.export_proxies(d)}"
+ flock -s "${REPO_ISAR_DIR}/isar.lock" \
sudo -E chroot --userspec=$( id -u ):$( id -g ) ${BUILDCHROOT_DIR} /isar/build.sh ${PP}/${PPS} ${DISTRO_ARCH}
}
Note: unless I am missing something, bitbake does not provide a mechanism to acquired a shared lock via task_name[lockfiles]
In our case, I noticed that Debian packages may access the package database during their build process while other packages/recipes may install dependencies
The idea was therefore to acquire a read (shared) lock while building (do_install_deps and friends acquire a write (exclusive) lock)
I have had this local change in our systems for several days now and errors like below have not been seen again
| dpkg-query: error: failed to open package info file '/var/lib/dpkg/updates/0001' for reading: No such file or directory
| dpkg-shlibdeps: error: dpkg-query --control-path libgcrypt20:amd64 symbols gave error exit status
I am however unsure if the CI build failures that we have here as yours
Can you have someone create an account on your CI infrastructure so I can check?
Thanks
Cedric