From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6982225001537601536 X-Received: by 2002:a05:600c:154b:: with SMTP id f11mr5139687wmg.82.1625747065415; Thu, 08 Jul 2021 05:24:25 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:3544:: with SMTP id i4ls5318443wmq.1.canary-gmail; Thu, 08 Jul 2021 05:24:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxeiKrm+PbdYTR5ZK/1Lgv6WR6l8O8gZfnJcNQ5/dza3HuELMzMpTGYphoeAbKrFifa0ZBM X-Received: by 2002:a1c:988a:: with SMTP id a132mr4900768wme.175.1625747064537; Thu, 08 Jul 2021 05:24:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625747064; cv=none; d=google.com; s=arc-20160816; b=HcHVnV/bQSZuA1kMf5jMJRuY33UDmFd5Zs8TWyTX6qW5Ywrgn7nhKyfZuj36dWvfY9 p4QRpRBNNmZ045rQ3cjMQ0dZoGkOLJ4UJb9TpSkL7W5OwkfYW4mXzJ6zyIANQsX1g3co 7plnKC4/oKn4/AqPMyQb7mAilEd0k9jRrE7qJ4wWOJiBQG35ndMm3BHm+6ISc41MC/c9 XndGzIaWDdOYIYI7NodkEiF8DmtuEvX3Kcn+GoRQIFJJsdynNovQP4aRBJ0YQ+ZyVync XqdP7nkJ6s2KMaE+yKjAnvHfBrsy3/xpJVmSW7CsQadCXHyRiiH9nENFbzuPOGwNojPU /Y+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:to:subject; bh=8uGAMWjkDolZxMVPpUP44DIGKa6LVgjbA6+A1eont6Y=; b=UtWT23GN4OaDohZT2nRNOROmf2iWEN9QsFdR/toAoHSPt7h6D5V5Xgh9Of8fzb+Mxd vqGm1gMBuZuG0Y3mcvlgao1qj2BJbQxzNsPTGu3yCIT8V+Rn8zJZ8s7Hu2FU0rWn1dMp 17InsrDDIy0kNA9V9ogh8kAdMgW0GJrmwxTI/K9GsRYll+aF4bFeymXZMQLi1P841xsS mLi1T2o4Wb7qizb2FHFyZXvqfYHvCOqcKq1bVWE3e1pf2rq165nDgLiBupl+NLkUVXbB XkMMdxzImrjpG1iOwLabrszPsfKcyOy/v9hFB6aDimLRuJfCyvRA5c5Uuz7e/GrLU3G1 wqRA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 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 goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id z2si82052wml.2.2021.07.08.05.24.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Jul 2021 05:24:24 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id 168CONe1024594 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 8 Jul 2021 14:24:24 +0200 Received: from [167.87.42.31] ([167.87.42.31]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 168CONe3016356; Thu, 8 Jul 2021 14:24:23 +0200 Subject: Re: [PATCH v1 5/5] events: Unmount all lost mounts at task fail To: Anton Mikanovich , isar-users@googlegroups.com References: <20210707163851.204296-1-amikan@ilbers.de> <20210707163851.204296-6-amikan@ilbers.de> From: Jan Kiszka Message-ID: <61de5d8d-08d4-9760-3467-d0313b3cb702@siemens.com> Date: Thu, 8 Jul 2021 14:24:23 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210707163851.204296-6-amikan@ilbers.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: /y9OApStOntm On 07.07.21 18:38, Anton Mikanovich wrote: > Perform mounts cleanup in case task fail. > > Signed-off-by: Anton Mikanovich > --- > meta/classes/isar-events.bbclass | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/meta/classes/isar-events.bbclass b/meta/classes/isar-events.bbclass > index 73419b4..50f5cb3 100644 > --- a/meta/classes/isar-events.bbclass > +++ b/meta/classes/isar-events.bbclass > @@ -4,6 +4,25 @@ > # Copyright (C) 2015-2017 ilbers GmbH > # Copyright (c) Siemens AG, 2018 > > +def is_mounted(d, mountpoint, subpath=None): > + path = d.getVar(mountpoint, True) > + if path: > + if subpath: > + path = os.path.join(path, subpath) > + path = os.path.realpath(path) > + with open('/proc/mounts') as f: > + for line in f.readlines(): > + if path in line: > + return True > + return False > + > +def safe_exec(func, d): > + try: > + if d.getVar(func, False): > + bb.build.exec_func(func, d) > + except Exception: > + pass > + > addhandler build_started > > python build_started() { > @@ -35,6 +54,14 @@ python task_failed() { > # Avoid false positives if a second target depends on this task and retries > # the execution after the first failure. > os.remove(task_once_stamp(d)) > + > + # Cleanup possible lost mounts > + if is_mounted(d, 'BUILDROOT_DEPLOY'): > + safe_exec("image_undo_mounts", d) > + if is_mounted(d, 'BUILDROOT'): > + safe_exec("dpkg_undo_mounts", d) > + if is_mounted(d, 'ROOTFSDIR', 'dev'): > + safe_exec("rootfs_undo_mounts", d) > } > task_failed[eventmask] = "bb.build.TaskFailed" > > No looping, so everything you miss here will continue to be cleaned up by build_completed() - so what's the point of these changes? Jan -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux