From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7116443733323677696 X-Received: by 2002:a05:6512:689:b0:489:d979:58ed with SMTP id t9-20020a056512068900b00489d97958edmr2299292lfe.243.1657727574146; Wed, 13 Jul 2022 08:52:54 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:7e10:0:b0:25d:9138:6686 with SMTP id z16-20020a2e7e10000000b0025d91386686ls228953ljc.6.gmail; Wed, 13 Jul 2022 08:52:53 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v5Oc7Rpxec55twHErnSEziCRLuopu0sy8jsHpFwS4Xtamox79ST2t62AA16+kMIPgGlwxx X-Received: by 2002:a05:651c:981:b0:253:b87e:ba6c with SMTP id b1-20020a05651c098100b00253b87eba6cmr2069111ljq.530.1657727572977; Wed, 13 Jul 2022 08:52:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657727572; cv=none; d=google.com; s=arc-20160816; b=lsTR4EEfFVelkzCBThGDet0QdmJ9osFGhFD9/MqIzgcsvcP2cXck7IGkOzxmVAA90z 9X4ga4jdKACs+hn229n7lEUy6Da5AuUAQVOp4egFXV23n1bpI0FSX0S51zq0oQHDGaLA YeGDlDXNrSolFv3UnTASJRxo86nzrAtXI3yu24gm/kDsZNw78bG+hqzTFVzulwOPQdvZ 7bISLZM05WaNxYGt6L6LiUnoNNLSOWuI1FVdfeZT0gVfrKZfDryaEaCiMF+l/y6iSxmK W8RoFPmGnZsFgiR/ngPPgb6z3PRxk2ohBMETZ+GtmLIejbdXrHT3F63QiTyDPk8dOsbC pqbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=OKMFKf5/N83yhBls7fUZNgF6hXTJpbtKfaE8xov13wA=; b=DBg3ZT7ZkPPOdyYXx6Od3iik7xx0ar0+PUqhxIH0baEUkImkI85AORESM4qKqv08OC HmhSwkPHr3a7Ugh/zGmiTYgqlK0WEh6ndD+4JyfBekyXm8B6daaIewbLsKCQyBYZWpiq VBegux0ZctdWx8l0KjyzncBi1nA8CwxUlLiaFGhEu6gmtq8qwR7nwxj1pzOQ5IgPqXFl bVAOepCoaIHKGJb89wbVKF6f+1tToMHjPoaVpMlbrN3kcFkZp43kZMA1TSFO5ckdFeRg dqC5QGGjVbjg+WWgEHQrJSg/ndSmZH/osbYJjnawpExqz/V0eFDtoIYQAOfr3lhqRLl4 6vGw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id o26-20020ac25e3a000000b004811cb1ed75si487451lfg.13.2022.07.13.08.52.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jul 2022 08:52:52 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from alena-nb.promwad.com (mm-243-40-214-37.mgts.dynamic.pppoe.byfly.by [37.214.40.243] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 26DFqmmU017670 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Jul 2022 17:52:51 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich , Felix Moessbauer Subject: [PATCH v4 1/1] add uuid to schroot folder Date: Wed, 13 Jul 2022 18:52:40 +0300 Message-Id: <20220713155240.8315-2-amikan@ilbers.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220713155240.8315-1-amikan@ilbers.de> References: <20220713155240.8315-1-amikan@ilbers.de> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: 3999HeOypiq2 PIDs are not unique across containers. When running the build in a container (e.g. the kas container), the PID of bitbake is likely the same across multiple simultaneously running builds. This is especially the case for CI runners, where it is common that multiple jobs run in parallel. This patch adds an additional UUID component stored till the end of the build in bitbake persistend storage. Signed-off-by: Anton Mikanovich Signed-off-by: Felix Moessbauer --- meta/classes/base.bbclass | 14 ++++++++++++++ meta/classes/isar-events.bbclass | 3 +++ meta/classes/sbuild.bbclass | 2 +- meta/conf/bitbake.conf | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 4ec2c81..1d954de 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -278,3 +278,17 @@ def base_set_filespath(path, d): if p != "": filespath.append(os.path.join(p, o)) return ":".join(filespath) + +def calculate_build_uuid(d): + import uuid + + uuid_data = bb.persist_data.persist('BB_ISAR_UUID_DATA', d) + if "uuid" not in uuid_data or not uuid_data["uuid"]: + # Generate new UUID + uuid_data["uuid"] = str(uuid.uuid4()) + + return uuid_data["uuid"] + +# Unique ID for this build, used to avoid name clashes on external mountpoints +# When running parallel builds in different PID namespaces +ISAR_BUILD_UUID = "${@ calculate_build_uuid(d)}" diff --git a/meta/classes/isar-events.bbclass b/meta/classes/isar-events.bbclass index 92aff20..f52b234 100644 --- a/meta/classes/isar-events.bbclass +++ b/meta/classes/isar-events.bbclass @@ -60,6 +60,9 @@ python build_completed() { stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) + + # Cleanup build UUID, the next bitbake run will generate new one + bb.persist_data.persist('BB_ISAR_UUID_DATA', d).clear() } build_completed[eventmask] = "bb.event.BuildCompleted" diff --git a/meta/classes/sbuild.bbclass b/meta/classes/sbuild.bbclass index f9bfaaf..7c39954 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -23,7 +23,7 @@ python __anonymous() { d.setVar('SCHROOT_DEP', dep) } -SBUILD_CHROOT ?= "${DEBDISTRONAME}-${SCHROOT_USER}-${@os.getpid()}" +SBUILD_CHROOT ?= "${DEBDISTRONAME}-${SCHROOT_USER}-${ISAR_BUILD_UUID}-${@os.getpid()}" SBUILD_CONF_DIR ?= "${SCHROOT_CONF}/${SBUILD_CHROOT}" SCHROOT_CONF_FILE ?= "${SCHROOT_CONF}/chroot.d/${SBUILD_CHROOT}" diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 6451cb5..cadfbdd 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -104,7 +104,7 @@ BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DI WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \ BB_WORKERCONTEXT BB_LIMITEDDEPS DEPLOY_DIR BUILDCHROOT_DIR \ REPO_ISAR_DIR REPO_ISAR_DB_DIR REPO_BASE_DIR REPO_BASE_DB_DIR LAYERDIR_core \ - SCRIPTSDIR TOPDIR" + SCRIPTSDIR TOPDIR ISAR_BUILD_UUID" BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \ SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \ BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \ -- 2.17.1