From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6739560601010307072 X-Received: by 2002:a17:906:6d4:: with SMTP id v20mr26962529ejb.223.1569176235284; Sun, 22 Sep 2019 11:17:15 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:c797:: with SMTP id cw23ls2653187ejb.6.gmail; Sun, 22 Sep 2019 11:17:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqwnlY+NrN4WiTN1HsTkvW5p3Y9ozsbBnrOawrj57edzjp4OxNKtAnYDlb3h8WG4/Q0kZN4Z X-Received: by 2002:a17:906:f08:: with SMTP id z8mr5549985eji.18.1569176234770; Sun, 22 Sep 2019 11:17:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569176234; cv=none; d=google.com; s=arc-20160816; b=RyOCiEf6T0Vv8z7Mtcne5WPKYar4/uUeGwFZiItLkpc1k2rUA4cZPx1c9f/eqICpRp muGaZkGXSs4freISvgaFQrh0Y4lOkwjIv5k+DumQEk3nGkn2iy5NZQu8mkJYFXGn7MoU 1TKwdoe0Hj1YcYMGEw0SnP/D/ZPScG/bAt+3LX+TbCKnJ333at//FfF9DtCDqlXS/OlW dck/6CbPXY0aEFjKzMFWjJIPqWdqFJKJUIydPGrI2IDLc6unrrQ/DTLB0+8pUq9NxlpU 3V2K2ul2fJFF2BJcSVVtTw4DIMZkKFMmCJXJGZOlHaRO/21J1YsdjyUQOFRJB75hlx41 +hkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:references:in-reply-to:message-id:date :subject:to:from; bh=Aw55qR0hha0TB+OwFrl4aE1tENi+dTo2q7x0jCEllg4=; b=fbvqyw4dXP4R+a5durx1wzMaZWpI0tVrKjEnO24lz+f6LsJkhxD4ymzVfdOk8NdjDz sIpXycY+3ZIYtW4x5VkHyRNG7cVGRNd06QEtyoUZZhHAwmCDK75kkMXNlV8C8h9Friaw k1pFdvT7R/tL/353ssCzT6n6Tuhy5HPeD5kKh0xMluMPQSF/EpHvCxShPaOtPUvOQBMv Z2Op6MM8Vq9NsdM0RsfUu03Mu5PwrjRE23W+oLxUeFPnfqbxb5g3AiIt/R+WZUqBiPhx Q7Z4qSB19Zglh9TenFVpJTdjS6O9NdaqAf7pyW0lMe5Ncts+aegReqNozyPx2QcsJHDl lO6A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id r3si668562eds.2.2019.09.22.11.17.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Sep 2019 11:17:14 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id x8MIHElW029128 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 22 Sep 2019 20:17:14 +0200 Received: from md1f2u6c.ad001.siemens.net ([139.22.37.1]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id x8MIHB90005761 for ; Sun, 22 Sep 2019 20:17:14 +0200 From: Jan Kiszka To: isar-users Subject: [PATCH v5 12/27] Detect false sharing of recipes Date: Sun, 22 Sep 2019 20:16:56 +0200 Message-Id: <5a2e329b881ec0b392d0f1abd116f1deeee0f66f.1569176231.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: References: In-Reply-To: References: X-TUID: N9PNAt+zK256 From: Jan Kiszka When a task is run more than once per build, this indicates a bug, usually (though not only) related to incorrect multiconfig use. Such bugs are hard to find in practice, so they could benefit from some tooling. This adds a very simple but effective check for such re-run scenarios by putting a "once." stamp file into each workdir during a build. If such a file already exists, an error is thrown. The workdirs are purged after the parsing phase on the beginning of each build so that no false positives are raised. Signed-off-by: Jan Kiszka --- meta/classes/isar-events.bbclass | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/meta/classes/isar-events.bbclass b/meta/classes/isar-events.bbclass index 62eb25d..1335356 100644 --- a/meta/classes/isar-events.bbclass +++ b/meta/classes/isar-events.bbclass @@ -4,6 +4,28 @@ # Copyright (C) 2015-2017 ilbers GmbH # Copyright (c) Siemens AG, 2018 +addhandler parse_completed + +python parse_completed() { + bb.utils.remove(d.getVar('TMPDIR') + "/work/*/*/*/temp/once.*") +} +parse_completed[eventmask] = "bb.event.ParseCompleted" + +addhandler task_started + +python task_started() { + task = d.getVar('BB_RUNTASK') + try: + f = open("%s/once.%s" % (d.getVar('T'), task), "x") + f.close() + except FileExistsError: + bb.error("Detect multiple executions of %s in %s" % + (task, d.getVar('WORKDIR'))) + bb.error("Rerun a clean build with empty STAMPCLEAN " \ + "and compare the sigdata files") +} +task_started[eventmask] = "bb.build.TaskStarted" + addhandler build_completed python build_completed() { -- 2.16.4