From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6631438923266523136 X-Received: by 2002:a2e:8887:: with SMTP id k7-v6mr2077431lji.3.1544002193788; Wed, 05 Dec 2018 01:29:53 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:9d8e:: with SMTP id c14-v6ls2065149ljj.10.gmail; Wed, 05 Dec 2018 01:29:53 -0800 (PST) X-Google-Smtp-Source: AFSGD/XJKbN1Li9cxVRbU/dPfU3sqSRgg8hlHBdtzOmlo5jANseTHy7JR3yxtb1pM8bpNrfELD2D X-Received: by 2002:a2e:8842:: with SMTP id z2-v6mr2104392ljj.29.1544002193013; Wed, 05 Dec 2018 01:29:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544002192; cv=none; d=google.com; s=arc-20160816; b=rI9G6i0oUFtdkTVi9GmqUBGY8fSxvGir9+a5Ar20y91feyGs3UgI2ctPSRv6SMfYB+ hHCkidqSE5PTADpNuZhnwicLuacEbMnrfNFY2mjwLh89m7XybsqfFUVM5aAaIgXQrIjc /Lejv5hOzfYzMXupiFoAyJICrwfxdUew/AVIlPftVw1B1UDxeZp93XtMTaoc/36zTres 18cYluoBVDPAUkYcquBF7vTyZqxoZmFEEKhE1RVUs5OL7OqAv3G3+ww6AXzNx9fRitfO EjM9U7bboJc4ZpkRYRdm0LhDe++iMeNal/dixIJBdftudeJe5LpESYXREU4fYoyQzeGK zv7Q== 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:cc:to:from; bh=ngcvX2zxpUUKlsvC48pr/g7mA8B1fIC1f9zfko2LmOY=; b=n/A/D1AtTGIqZpi894X1/WFN6b57gldepGThS+bEkOU3KcuwsblYNNNoOnJk7yYSQq 7XbCS5ZbVsSepa4gLZSLrmwaK9UzU4vxVt5zFhtrB5H8BXQ3gN7zNSx5gdT0UByPDUtA sJ9jvT9LySEDapo2LY3vpnOtAY7R5PJScTadNGmSG4Nl4cqXroZzqFEdw070DiRFEL4q r1gECfXgTPgKoqEFFnPc2yEVVsrPffriIF+xYXJbZKfYzdV5t/yyGezc58Nrc+47Tm/o pEIGV55upYF3MJAl2LSrcdSZHg028kkZVCAlhOvx3dE37JUj/S8imRbjlVHZ62CwW7LO RTdw== 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 y18si790007lfe.3.2018.12.05.01.29.52 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 Dec 2018 01:29:52 -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 mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id wB59TqaI002770 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 5 Dec 2018 10:29:52 +0100 Received: from md1f2u6c.ad001.siemens.net ([167.87.1.27]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id wB59TpO0010907; Wed, 5 Dec 2018 10:29:51 +0100 From: Jan Kiszka To: isar-users Cc: Cedric Hombourger Subject: [PATCH 2/3] isar-events: Improve umount handler Date: Wed, 5 Dec 2018 10:29:49 +0100 Message-Id: X-Mailer: git-send-email 2.16.4 In-Reply-To: References: In-Reply-To: References: X-TUID: MDZaPEbhxEdg From: Jan Kiszka Using lazy umount avoids having to loop over the mount points. Furthermore, also triggering on runQueueExitWait allows to perform the umount earlier. Finally, filter for the events we actually want. Signed-off-by: Jan Kiszka --- meta/classes/isar-events.bbclass | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/meta/classes/isar-events.bbclass b/meta/classes/isar-events.bbclass index b3ce434..05b27e5 100644 --- a/meta/classes/isar-events.bbclass +++ b/meta/classes/isar-events.bbclass @@ -6,34 +6,22 @@ addhandler isar_handler -python isar_handler () { +python isar_handler() { import subprocess - import time + import bb.runqueue - 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. - result = True + tmpdir = d.getVar('TMPDIR', True) + if not tmpdir: + return + + basepath = tmpdir + '/work/' + + with open(os.devnull, 'w') as devnull: 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: - result = False - return result - - devnull = open(os.devnull, 'w') - - if isinstance(e, bb.event.BuildCompleted): - tmpdir = d.getVar('TMPDIR', True) - - if tmpdir: - basepath = tmpdir + '/work/' - - while not umount_all(basepath): - time.sleep(1) - - devnull.close() + subprocess.call('sudo umount -l ' + line.split()[1], + stdout=devnull, stderr=devnull, shell=True) } + +isar_handler[eventmask] = "bb.runqueue.runQueueExitWait bb.event.BuildCompleted" -- 2.16.4