On Mon, 6 Sep 2021 09:58:09 +0200 Bastian Blank <[email protected]> wrote:
Package: dh-exec
Version: 0.23.4
Severity: important

dh-exec and dh_prep are racy together in it's usage of the global source
directory "debian/tmp".

dh-exec-install-rename uses "debian/tmp" to create it's files.  But at
the same time dh_prep also removes this global directory.  So every
concurrent use of dh-exec leads to race conditions.

This leads to errors like this[1]:
| Error in tempdir() using debian/tmp/dh-exec.XXXXXXXX: Parent directory 
(debian/tmp) does not exist at /usr/share/dh-exec/dh-exec-install-rename line 
18.
| BEGIN failed--compilation aborted at
| /usr/share/dh-exec/dh-exec-install-rename line 25.

Bastian

[1]: 
https://buildd.debian.org/status/fetch.php?pkg=linux&arch=ppc64el&ver=5.14-1%7Eexp2&stamp=1630872170&raw=1
--
The sight of death frightens them [Earthers].
                -- Kras the Klingon, "Friday's Child", stardate 3497.2



The `dh_prep` command should not be run in parallel with anything that needs `debian/tmp` as it deliberately resets `debian/tmp` to enable `dh_auto_install` to install into a clean slate (in case of a `-nc` build).

This is a limitation of `debhelper` and not limited to `dh_prep` and anything interested in `debian/tmp` or `debian/<pkg>/`. Another (more recent) example is `dh_update_autotools_config` vs. `dh_assistant restore-file-on-clean` (or just either of those in parallel with themselves).

Best regards,
Niels

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to