From patchwork Thu Feb 19 04:12:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Prusty, Badrikesh" X-Patchwork-Id: 4878 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 19 Feb 2026 05:13:04 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f191.google.com (mail-lj1-f191.google.com [209.85.208.191]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61J4D3Sm028492 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 19 Feb 2026 05:13:03 +0100 Received: by mail-lj1-f191.google.com with SMTP id 38308e7fff4ca-386fe2386easf9894941fa.0 for ; Wed, 18 Feb 2026 20:13:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1771474377; cv=pass; d=google.com; s=arc-20240605; b=RaumXALqxwoHGM5hRKj6E7aWnMarBOAtK3Cf3oH41c5W8u12n7FvElZ/9hmyy/z4Gr BAH31taH5o2iYsrso8GQp7SIgachOgd4uUi2p9uDeyuo6P8j1W3Vjgfkh5olaN+gBl6B cS/qK4wKL2w75f7I+jX8Vn+/oqEGBQlVMb3/0Hbo0cToXMiEmEF0VvX4CDp6GknijBRy w1IhmOPzFdYlVSu1awzK/swz585YbNavYG/btqvMaAwhrwFdyu5yCuWLqjx5dhXMlfq/ fD/4eLyA456QO7w5pwO1ZfVZTivf4AWVDRF/RMEaWsLXC+lSAMlOu939F8NMHTDBB4Dz Ks0A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=iQ+MlJWboG/sB9SWgnpUL23R5bn6MkXjt9XyfyyyFiI=; fh=MtPAzpx+76cSZZyQ7yINcb5syXyRnHYs98+xHCY/FAk=; b=dg1LsT+xjVNr/2CKv/DmDz8BdnxkjkS4Sb7g9yx240wmr+BkZvrG5BTJgQxABRdq5f /p5MqMRTtTuhD17OyCQiJb2FMU6SRuqRxj8LXkH4XYH8z24p1mhu8ERlc+XfHNt5s6D+ L8n80EAmAPlWvxBEQr0BzodEeD6KZMSTwvN/SPos8gVVM2q06xuVyLA08xa0I8+NpfoH Vf8vE3ASZ43nBcypDsf/qDPxvO/BnQ2wkV8oVRtu15xCr66pyk/tQ7701WWNBYTd5z/o rvYHMYRuKdZduCI/IP0hKiRUmLeTLrByC9O31ZRlqHjwpqCqY5A9CWQovhPxIOmSXeXP Tkpw==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=aoxK4QHC; spf=pass (google.com: domain of fm-1328765-2026021904125333f71223cb00020732-obxttk@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328765-2026021904125333f71223cb00020732-oBXTTK@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=20230601; t=1771474377; x=1772079177; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence: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; bh=iQ+MlJWboG/sB9SWgnpUL23R5bn6MkXjt9XyfyyyFiI=; b=aEqJlY8wQGuIDbN9Uuv6t7UXnFrFecfC5Hc4SrICy9Rdku40neGG4r2G/y/WS20OgO 1//iwAadSQIFexSMLHWW048jPJQ9IDtp5DKicEFDN1OOaD/ltvs5IStrdF8Zu4nbb21q j17ZptabQvFtkzmnjPvY26f6jCOxUCJ4d6zLejSkM7IqYR6GGFKbLZiZnPyvuhJTdOLw OnK84fvI8amsqDGKwZS6D4hOesktcN85vpycxWoZuAlGv0gfrRmWeY2h+RSMh+W8Eofo BkzwVH+F4zKniffk0T4EJqudMJ/w86cG7BbgT1jyQCRRAIuGmnVZ0lkJE7SzyCj3/zqx 9VBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771474377; x=1772079177; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence: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; bh=iQ+MlJWboG/sB9SWgnpUL23R5bn6MkXjt9XyfyyyFiI=; b=Z1r45tM761Jxbrk+gurTmJJA3oSwzV8d3rDDGbfVXmW05vgLh7RfhHRc3QglRnMc2m +EZSj18hOD7z+vSTbYCZNkcIueFLoDk6x6DOG0SSK60CZ7z0+pkXVaMz9W1jrGcW3vuy pM2aHTxX8dlfzqTGy+dwAmIRFqOu2fSrCmbn92txlIOOTHL0ggknYWSK6MlTwY1DKMss AYYFLn1LGmn6jjI7uWa2Z8GgYhQNNK/CK40HrwySTztVyeMEHRrbUKL8LZT9kxQjerEt lY9SvGa2DBML3tg/8T66Z0pRIDqXkujb1K30vPSWK0waaE3OQfjF+Gdav5kpbtUCWyDk F9kA== X-Forwarded-Encrypted: i=2; AJvYcCX15nlnGSsN4oacG1Ig9CUuoFGvSrJBnybYVNiZYkK/WZc1b57TCG/p0uK8gLtY3hqYZuJ6VS0=@isar-build.org X-Gm-Message-State: AOJu0YyGjRYaIbwp50JrQyXFyfECA7iDzodmNP8BQ4o07kGjfhJMEjYe hmke2kYsVHG57iBwrLVxRML9DawQBYmV0pLT7xXJQKP68wD7weplVHaG X-Received: by 2002:a05:651c:20cc:10b0:385:cf70:1400 with SMTP id 38308e7fff4ca-387e8f176ebmr45039111fa.15.1771474377278; Wed, 18 Feb 2026 20:12:57 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+E0pDVzguvYgTL2SkzXSClNgDL5kVT+BUjK2skxemmAIA==" Received: by 2002:a05:651c:198f:b0:383:10b5:939e with SMTP id 38308e7fff4ca-387129af873ls22279061fa.1.-pod-prod-03-eu; Wed, 18 Feb 2026 20:12:54 -0800 (PST) X-Received: by 2002:a05:651c:1587:b0:386:13d:40c0 with SMTP id 38308e7fff4ca-387ed8c8107mr53734321fa.25.1771474374590; Wed, 18 Feb 2026 20:12:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771474374; cv=none; d=google.com; s=arc-20240605; b=BJrjvUHmw77vneJdhEWs0lmh85hc/CG9G4TwEzRzxEWtvwri5SEvSPVmXrG1rSqQVS d4XdeHXn3YogPxiLc0HfNJ+CnDWDpbHHKltlM18CbrkWKEqERalSGGA9ewJzhAW9uYf/ oKX6OL4YpXUX7eKqI8J3vEiB1bqKJel5wphT5DmMseL2U1Len1H+utZ1a4xcSZ8lRpew OqO7OBFYTlPakV++P49JXCrB5XD0sFCLL6EZRcgv7lp5mSIjlpS5e3PntZDumQNefTbj fxn2EuHaSJv0Sl7qMpSxsO347Gi845m23FDLugatepKMg/SNuba8rjTqhkM2BORP2OKl kskg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=avqVJ3FhUy0PJLRo1SpgVnR0dq20U1AT5W9mB5H6698=; fh=Pt40xOu0ssl96dVOzN1FNmNtHgqv9aW9VmLrBG8UyVY=; b=O7nSXqmwUc6z/Q620yOggENwGJnYf1cJEYBLmEMu2oVDSmHOXvAp0jwvFwD7G/0Jty dNhiXRxY0svi/IPEgbohgY2G5+vtsLKl9s5W9XvvDovmzfCRV9T+GFZLtMjH9JAKUOJK 9i7U73Y7fZ7AuAr8v4OZiNJG9Fj4/U6zoAkCoSAztMbyv1o8v5+A10PcFup9O+AoS6A+ ZohJZUqQc/2H+Mlq2WSZusa3sZslYlDvoRbFXWckAs9Kb3dgRYw2zPhTiT5JtjZHMC5W nDKxVq29yeaP2QvV3EX2FtkysHWyeN7opaTI25vrf+gwr9mYWSGnaY+ODLymlTt2b7gc IyCQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=aoxK4QHC; spf=pass (google.com: domain of fm-1328765-2026021904125333f71223cb00020732-obxttk@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328765-2026021904125333f71223cb00020732-oBXTTK@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-225.siemens.flowmailer.net (mta-65-225.siemens.flowmailer.net. [185.136.65.225]) by gmr-mx.google.com with ESMTPS id 38308e7fff4ca-387068d6304si6558531fa.4.2026.02.18.20.12.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Feb 2026 20:12:54 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1328765-2026021904125333f71223cb00020732-obxttk@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) client-ip=185.136.65.225; Received: by mta-65-225.siemens.flowmailer.net with ESMTPSA id 2026021904125333f71223cb00020732 for ; Thu, 19 Feb 2026 05:12:53 +0100 X-Patchwork-Original-From: "'Badrikesh Prusty' via isar-users" From: "Prusty, Badrikesh" To: isar-users@googlegroups.com Cc: Badrikesh Prusty Subject: [PATCH v2 1/1] installer: fix race condition with multiple consoles running unattended Date: Wed, 18 Feb 2026 23:12:34 -0500 Message-ID: <20260219041235.441664-2-badrikesh.prusty@siemens.com> In-Reply-To: <20260219041235.441664-1-badrikesh.prusty@siemens.com> References: <20260219041235.441664-1-badrikesh.prusty@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1328765:519-21489:flowmailer X-Original-Sender: badrikesh.prusty@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=aoxK4QHC; spf=pass (google.com: domain of fm-1328765-2026021904125333f71223cb00020732-obxttk@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328765-2026021904125333f71223cb00020732-oBXTTK@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Badrikesh Prusty Reply-To: Badrikesh Prusty 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_H2,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?= * Add lockfile `/run/installer.lock` to prevent simultaneous unattended installs across multiple consoles. * Add progress monitoring for installations started in another console via progress pipe. * Periodically check if bmaptool is still running when progress pipe is unavailable and continue once bmaptool completes. * Use /run/installer.fifo for progress_pipe instead of /tmp/progress This resolves the race condition between consoles and prevents issues with long-running or partially completed installations. Signed-off-by: Badrikesh Prusty --- .../files/usr/bin/deploy-image-wic.sh | 43 ++++++++++++++----- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh index 9c041a50..9a69fde5 100755 --- a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh +++ b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh @@ -231,13 +231,15 @@ version_ge() { fi } -if ! $installer_unattended; then +lockfile="/run/installer.lock" +progress_pipe="/run/installer.fifo" + +exec 9>"$lockfile" +if flock -n 9; then # Get bmap-tools version bmap_version=$(bmaptool --version | awk '{ print $NF }') if version_ge "$bmap_version" "3.6"; then - # Create a named pipe for progress communication - progress_pipe="/tmp/progress" if ! mkfifo "$progress_pipe"; then echo "Error: Failed to create named pipe $progress_pipe" exit 1 @@ -259,16 +261,35 @@ if ! $installer_unattended; then gauge_pid=$! fi -fi -if ! bmaptool $quiet_flag copy $bmap_options "$installer_image_uri" "$installer_target_dev"; then - kill "$gauge_pid" - exit 1 -fi + if ! bmaptool $quiet_flag copy $bmap_options "$installer_image_uri" "$installer_target_dev"; then + kill "$gauge_pid" + exit 1 + fi + + # Attempt to terminate the gauge process if still running. + # Errors are ignored since the process may already have exited. + kill "$gauge_pid" 2>/dev/null +else + echo "Installation already running in another console." + + # Wait for running console to create the progress pipe + sleep 2 -# Attempt to terminate the gauge process if still running. -# Errors are ignored since the process may already have exited. -kill "$gauge_pid" 2>/dev/null + # Check if progress pipe exists and has content + if [ -e "$progress_pipe" ]; then + echo "Installation progress..." + tail -f "$progress_pipe" | while read line; do + printf "\r%s%%" "$line" + done + else + # Periodically check if bmaptool is still running every 5 seconds + echo "Waiting for installation to finish..." + while pgrep -x "bmaptool" > /dev/null; do + sleep 5 + done + fi +fi if ! $installer_unattended; then dialog --title "Reboot" \