From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6523072403514327040 X-Received: by 10.28.237.9 with SMTP id l9mr1096375wmh.17.1518771146928; Fri, 16 Feb 2018 00:52:26 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.138.19 with SMTP id m19ls190004wmd.5.gmail; Fri, 16 Feb 2018 00:52:26 -0800 (PST) X-Google-Smtp-Source: AH8x224/08FJPgNg9pIPXbAMgiOhNJxQnXQD30jywU6dCBnn5l0+s8Pb7M6jze1VJPM0TtgF+irX X-Received: by 10.28.241.2 with SMTP id p2mr1212974wmh.26.1518771146378; Fri, 16 Feb 2018 00:52:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518771146; cv=none; d=google.com; s=arc-20160816; b=rcoNOpH23KqLBoG7I1Ay/lADI9zXh5yjrfVCzBAUawPdYBgmv2X7MhGiXvYEm0BYht W6ltuuqafQJu7Fd8Ll1v+qeitH80OUqCQj/r0OwR5EwNRBZmDnWShwm5JD1NUuXslEqp 0KGSZRXqE057qXHrEnRs3N3xg6mfIS6mbxV2XwkMrurAC2T6y/+ZAFG85Z39nA03V4q3 DEM0eSDiEP/K3G1yEr/oGLi5U+zJV7mq6eL8AXgYzNKCXwW6MBRsmihOUpx1FtYxeHB7 zVnuiwL32twwZRXxhv/s+6BXQyczBMHh+R7l6ZBz8SBsLdM9HJDVQoInxLRpRYPfBb78 yVGg== 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:arc-authentication-results; bh=lwISdfhwiCwlJMwxAJDKLtwyGPCYn7FMQpt8VZZY/so=; b=TxgcLHCDBeh+HNV0gMEjxskOyBPKv2Jq3TRp3bhgK71HdjLl8kpO3chT8UX2ZeOiYN YbxYQ7bVIQi055qW9/A1yvFNhiUNE7eJiXaD9rHcsCmEgrXTfET8iQW983j2g4hLrgPb kdpGDRDVbp6/O91EyAV0fuM5j9auaBU15f2MUKGKw7jF/SSq1OxV/tMmFswlDXn/ymqw yLgO0JK9nKkHyArq60Onx98mjczoJRZSCIJjbDcKquWvHzMYmVrBcH9s4k3v5fIbCKnI C9/ckzTdVEtLMQUHK5JaWOGdWIk7Zmzu0fNki2wNGcpMqx0qym+ICl5wfiQs8xWjtUk9 XJ+g== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id g70si99890wmc.3.2018.02.16.00.52.26 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Feb 2018 00:52:26 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w1G8qPak020000 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 16 Feb 2018 09:52:26 +0100 Received: from md1f2u6c.ww002.siemens.net ([167.87.7.207]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id w1G8qPVP025341 for ; Fri, 16 Feb 2018 09:52:25 +0100 From: Jan Kiszka To: isar-users Subject: [PATCH 2/8] isar-events: Wait for failing umounts Date: Fri, 16 Feb 2018 09:52:18 +0100 Message-Id: <3db8db617fb01db824b962b979de745fa0f4bc9a.1518771143.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: References: In-Reply-To: References: X-TUID: 5aC76uvu5FyZ From: Jan Kiszka The BuildCompleted event may come prior to all running build processes being terminated. In that case, some mount might be busy, and we will leave them dangling behind. Wait in that case. Signed-off-by: Jan Kiszka --- meta/classes/isar-events.bbclass | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/meta/classes/isar-events.bbclass b/meta/classes/isar-events.bbclass index 4b5e97e..68208f1 100644 --- a/meta/classes/isar-events.bbclass +++ b/meta/classes/isar-events.bbclass @@ -2,11 +2,26 @@ # # This software is a part of ISAR. # Copyright (C) 2015-2017 ilbers GmbH +# Copyright (c) Siemens AG, 2018 addhandler isar_handler python isar_handler () { import subprocess + import time + + def umount_all(basepath): + # '/proc/mounts' contains all the active mounts, so knowing basepath + # we can get the list of mounts for the specific multiconfig and + # clean them. + with open('/proc/mounts', 'rU') as f: + for line in f: + if basepath in line: + if subprocess.call('sudo umount ' + line.split()[1], + stdout=devnull, stderr=devnull, + shell=True) != 0: + return False + return True devnull = open(os.devnull, 'w') @@ -16,15 +31,10 @@ python isar_handler () { arch = d.getVar('DISTRO_ARCH', True) if tmpdir and distro and arch: - w = tmpdir + '/work/' + distro + '-' + arch - - # '/proc/mounts' contains all the active mounts, so knowing 'w' we - # could get the list of mounts for the specific multiconfig and - # clean them. - with open('/proc/mounts', 'rU') as f: - for line in f: - if w in line: - subprocess.call('sudo umount -f ' + line.split()[1], stdout=devnull, stderr=devnull, shell=True) + basepath = tmpdir + '/work/' + distro + '-' + arch + + while not umount_all(basepath): + time.sleep(1) devnull.close() } -- 2.13.6