From patchwork Tue Oct 27 11:06:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "srinuvasan.a" X-Patchwork-Id: 5572 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 27 Oct 2026 12:05:37 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-pj1-f58.google.com (mail-pj1-f58.google.com [209.85.216.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 69RB5Wv4018147 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 27 Oct 2026 12:05:32 +0100 Received: by mail-pj1-f58.google.com with SMTP id 98e67ed59e1d1-3adc5b185bfsf4352553a91.3 for ; Tue, 27 Oct 2026 04:05:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1793099126; cv=pass; d=google.com; s=arc-20260327; b=dxtPMAsbry4H1l3Jdv9FEoBEAmtc6lZMsMxvmDhK9GIT86/SYM13LBFW/VjBn6RVh4 dauEnHphijARCGizmy3B0yT90nqPwvnDHIhe/htk3cxSdFoTO9lOgE3VPFN47uT0tMmB 9xECvNsXxvg5GINCt9A+EKfM+UHY3rD4DmyyeLfkuvWQq3VHu1sWaq8+EIoj/Sl0z8bS q5dYoCY3R/KdlNr6eq8Gu5hHoPUOyJdsUTwvUWd5j99wNx9lfvjSk+uu2ghbyZEKubGU rsEHQa+YAjuPCUS9BEYGvbMN/LIoPSHQ750DSIlPHqVDrIFPvOvPceMyd8+i5Rygg4oQ q1pg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=eToCYYXcNeBGRe6FyGSnHorpXIbenDUC4dSuYfc6UoY=; fh=MMkPyMMdHOgzyXohkBY6PLJ8NMhIj6c2bKm4olkmkOw=; b=eij2IOdbTnX2dJ/+FnKS8fpzI0bkH/uhgEBJDSnK40VMNWxmfvh7wrOvOi3QsB4Etl BUfbKQgh5yBO7jb1C/4VkaX4R7kfgF573yKBXD9UM7XNT0YovEcyCQgcKTbH+A/7xiBo WJLiCkYYghiDT6sG6ACLfjS3v7zrcU4egRmlUoUZwjXF3lL5Uo2iANWNaRvR417Ez2D2 Nydk5oCz5Kp6akcUu9ARIHk6zbTv6k1HAAgYFW93T3lLnNPno8emZsFsxFbg+YQcV7GB 7dYPdPKt9dhbbos/C+OFY+IV0lzyOXGcFiR3KRAB0wUKvcMaV2GZKX8UX8yPCfw88Euh KV1A==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=a+JgHftm; spf=pass (google.com: domain of fm-1324425-20261027110520a964184890000207fd-ivmlgx@rts-flowmailer.siemens.com designates 185.136.65.228 as permitted sender) smtp.mailfrom=fm-1324425-20261027110520a964184890000207fd-IVmlGX@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1793099126; x=1793703926; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-type:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=eToCYYXcNeBGRe6FyGSnHorpXIbenDUC4dSuYfc6UoY=; b=Sf5fKcXZJg+7XCQ0Jm1s01eR9g+FiAtZvpCUWb6j12sdA+pBztcplmvpn7L/rrGur1 SEmhBcCb2Yv7jiFikFtrF8hidHpm+C7mlp8dfV3czw3vZQLCDmc4TfEOwilNpUbI20nv RJ1zl0Vi74fOVHFAXdn6KaUZ23/iOrvRiaPLBVVl+1TrxwdhhM2qWPprtCKnInLRZQMY KFAl5BgtZS1+aZpk3RMjdZFR4ba5ayt6rtal/RktnsMsjc0vcgzCchbsG1wTBQRBwi6b mk0n2pW6Ki/43PG70ixOr/cgBFRZRSRvIrGd4JZoK6EAAhkM2R77RZG17CJRR/s2U9uz K3cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793099126; x=1793703926; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :content-type:reply-to:x-original-authentication-results :x-original-sender:feedback-id:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-beenthere:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to:content-type; bh=eToCYYXcNeBGRe6FyGSnHorpXIbenDUC4dSuYfc6UoY=; b=KezdtCzRLslpFj1Ub0lz2S70VxH7wU0uZsPMLa7sS3pW88TuSUktiBsUSkF+NEtnpn 4hn2CaGczYAHL29EevlhufrgPHK6t+UVhfg/r4mHVGXkFJ1j78eRxgH0N+ZNZ52bi/SW Ke8TbWotPpOlQU1G/5Fu+vaiUMpo//IKyJsfB+aO1z/X/MjF1lUx+W9VWkLCEfQyOO6x o2FFfvs6ab+grQmiRUcz4fQj7d94HMUrNeR5a/8CkOWerJGf76FanidGsRQ7PAIEvdBe GSB00ZSlt+9tZmNMobQ3DGF/KS7l8N61PoBHqxp21A5mjhRHx891S5X0q16w5dLyTIRK C6Xg== X-Forwarded-Encrypted: i=2; AKwUvByZaGZK93qyqfEt7ecOW06JK4+OW+z8up+GghRSJ+s+dCOeXQ8HLgsPjGjbLoReSJeERTnq8a4=@isar-build.org X-Gm-Message-State: AFq9FYJ6Wr0Gc+Ulz5c6IfFM6ikM90ldcepNkpqsQ6W1RIaXkOzBXSnh v+c/JCcWkeEKC2DXm5MTscwyrnC+AtoNR6kydY+DT/YUTwo6Iu4YucyE X-Received: by 2002:a17:90b:1d50:b0:3a7:ab31:2f4f with SMTP id 98e67ed59e1d1-3adeae9bdedmr7711321a91.28.1793099126211; Tue, 27 Oct 2026 04:05:26 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdcHSwvablzlzTUbpNPzVCWHEJdwfAaC9co7Zopp5F9J3g==" Received: by 2002:a17:90b:1c85:b0:3a7:cdf9:8fdf with SMTP id 98e67ed59e1d1-3adc9e0225els6458411a91.2.-pod-prod-06-us; Tue, 27 Oct 2026 04:05:25 -0700 (PDT) X-Received: by 2002:a17:90b:5644:b0:3ab:d45c:59da with SMTP id 98e67ed59e1d1-3adeafd21a8mr7897787a91.40.1793099125180; Tue, 27 Oct 2026 04:05:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1793099125; cv=none; d=google.com; s=arc-20260327; b=mpj8mf9DyQlsl4LT6c+R9krN5khA33WjRoxpY48ApdxI6dy5bD1YZhl1JgGO2Fm1qY 3F+oH+VslBKoSLTNQorGMnnE8gDgFnlSpiejO1KTVl/tDRagYpFlznGi0RrVlKHAY39p 23kCY6NFH0F6ASWqarcQoVDSZPVVDla3M1OxkUvYCmjZ9hE8Bne7hAL+d24YvMdfXTul TaORb/9nHBJvYYf+7E3JSQiGBAwyF4FQriU4rGWIY+tF1W+zctSRFEIlZ2WzKu2UmHU5 fP2Ib1sgTyZELy9sbrWFqtC7pba/R19YMOPIGPy9rYIDkUmt6i3io6iN+3i2yjL2TStp dZwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=DybsDwjiYLhQzieMmBbAzQQASk6nZvrBQnhT4RuxU8c=; fh=VulK/l3XeLoc9JOOMl9NSLlfbMahF+GjHF6HwceMpeQ=; b=Kr/fYq3loUO4fUBDUFmNaC79uH7R54NF/OmHu2QSqoXAE/krtehDatCV4ZTw3sS8+a DM9cIHQ+XnBjAUgiclauZQ/0kz90YIAlOj4yp3rL4uvBXfrk0YPGa2zKfLhsrCyX02IX efs16ARN2TnIQd3zskghoQHFBYj+NcqR/YDqkRug1xP2SCOYiX43J74E7rK2Uv7qM6T8 HnZPhYn4/dFtM/ftQ5AHTostct2pu4SJupsRX1+irzuXHEjudHLxYIxHzoKYttYGiclT oiQKJHcgfFG41mWkwjiTyOcpijnPIactMJsjLfYp1FL7LeC64yw6e9SfP6cZtaOzxXHl OUcg==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=a+JgHftm; spf=pass (google.com: domain of fm-1324425-20261027110520a964184890000207fd-ivmlgx@rts-flowmailer.siemens.com designates 185.136.65.228 as permitted sender) smtp.mailfrom=fm-1324425-20261027110520a964184890000207fd-IVmlGX@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-228.siemens.flowmailer.net (mta-65-228.siemens.flowmailer.net. [185.136.65.228]) by gmr-mx.google.com with ESMTPS id 98e67ed59e1d1-3ae406af3ebsi42017a91.3.2026.10.27.04.05.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Oct 2026 04:05:25 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-1324425-20261027110520a964184890000207fd-ivmlgx@rts-flowmailer.siemens.com designates 185.136.65.228 as permitted sender) client-ip=185.136.65.228; Received: by mta-65-228.siemens.flowmailer.net with ESMTPSA id 20261027110520a964184890000207fd for ; Tue, 27 Oct 2026 12:05:21 +0100 X-Patchwork-Original-From: "srinuvasan.a via isar-users" From: "srinuvasan.a" To: isar-users@googlegroups.com Cc: cedric.hombourger@siemens.com, Srinuvasan A Subject: [PATCH 2/3] deploy-image: report the result of the console holding the lock Date: Tue, 27 Oct 2026 16:36:00 +0530 Message-Id: <20261027110601.1197504-2-srinuvasan.a@siemens.com> In-Reply-To: <20261027110601.1197504-1-srinuvasan.a@siemens.com> References: <20261027110601.1197504-1-srinuvasan.a@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1324425:519-21489:flowmailer X-Original-Sender: srinuvasan.a@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=a+JgHftm; spf=pass (google.com: domain of fm-1324425-20261027110520a964184890000207fd-ivmlgx@rts-flowmailer.siemens.com designates 185.136.65.228 as permitted sender) smtp.mailfrom=fm-1324425-20261027110520a964184890000207fd-IVmlGX@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: srinuvasan.a@siemens.com Reply-To: srinuvasan.a@siemens.com Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Srinuvasan A When several installer consoles run, only the one holding the installation lock copies the image. Consoles that do not get the lock waited for it to finish and then always reported success, even if the installation had failed. Wait for the lock holder with flock and let it record its outcome in /run/installer.result. Consoles that waited return success only if the holder succeeded. Signed-off-by: Srinuvasan A Suggested-by: Cedric Hombourger --- .../deploy-image/files/usr/bin/sys_api.sh | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh b/meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh index 5f591745..26b39108 100644 --- a/meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh +++ b/meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh @@ -278,7 +278,9 @@ sys_bmap_options_for_image() { # # Performs the actual bmaptool copy, serializing concurrent installer # consoles via flock. When UI hook functions are available, this API -# uses them to present a progress gauge in attended mode. +# uses them to present a progress gauge in attended mode. Consoles that +# do not get the lock wait for its holder and report its result, which is +# kept in /run/installer.result. # # Optional UI hooks (if defined): # ui_start_progress_gauge @@ -289,6 +291,7 @@ sys_install_image_with_lock() { local target_device="$2" local lockfile="/run/installer.lock" local progress_pipe="/run/installer.fifo" + local result_file="/run/installer.result" local bmap_options local bmap_version local quiet_flag="" @@ -297,6 +300,7 @@ sys_install_image_with_lock() { exec 9>"$lockfile" if flock -n 9; then + rm -f "$result_file" bmap_version=$(bmaptool --version | awk '{ print $NF }') if sys_version_ge "$bmap_version" "3.6"; then @@ -323,27 +327,20 @@ sys_install_image_with_lock() { if declare -F ui_stop_progress_gauge >/dev/null; then ui_stop_progress_gauge fi + echo failed > "$result_file" return 1 fi if declare -F ui_stop_progress_gauge >/dev/null; then ui_stop_progress_gauge fi - else - echo "Installation already running in another console." - sleep 5 - if [ -e "$progress_pipe" ]; then - echo "Installation progress..." - tail -f "$progress_pipe" | while read -r line; do - printf "\r%s%%" "$line" - done - else - echo "Waiting for installation to finish..." - while pgrep -x "bmaptool" >/dev/null; do - sleep 5 - done - fi + echo ok > "$result_file" + else + echo "Installation already running in another console. Waiting for it to finish..." + flock 9 + # The other console owns the result; only report success if it did. + [ "$(cat "$result_file" 2>/dev/null)" = ok ] || return 1 fi return 0