From patchwork Wed Feb 18 12:45:06 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Prusty, Badrikesh" X-Patchwork-Id: 4877 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 18 Feb 2026 13:45:39 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f57.google.com (mail-wr1-f57.google.com [209.85.221.57]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61ICjcZD024209 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 18 Feb 2026 13:45:38 +0100 Received: by mail-wr1-f57.google.com with SMTP id ffacd0b85a97d-4378f5f01c6sf753154f8f.1 for ; Wed, 18 Feb 2026 04:45:38 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1771418728; cv=pass; d=google.com; s=arc-20240605; b=hofu8wUthN2DZyMKFyHserRTL1/sB+OC8FT2eFpNzS8jPVexV6F8b5HlksvBf7WtsH O2ucfUt0h64SuN0kpSIcy6M7slgCUhEnIOgAhOLkSLebgohnG05XOS7VtbUKDnmCIHu8 Zv521RZ5WyPZyrabrGbpGcKNikh8RxmU5EpoXCPBcd4oEQNX5gtXpCKo0bsd/qXqrZ2Q muDTuz9MSztmnWNyfIBbgYykM/AAl2CkSunH2GjMOOciT+/o54qcBmiqlFcDLmHP/Qfd ktbcYPQQZC+tXDBBgxhZS+OTELKQhXHh5Nxi1pRFrK4nQVe6UBmdQBLmuWM2vUd0DFNd qxig== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=LdYl9Z3woC8xb8R6qAWsHaw15JOO1D2wT2oH5Sntam8=; fh=2PSlwSVKeKHlT9N7AzY0onExfSLt4od00XhwOIk+OBY=; b=hMbZMoy6G97C0sXsVq2zTULpbey7nWly5z9cDSFLlBpN5qqgsieDOaByTUzHDiWtTO Coel7G9v4N/ycisCupu52uj1UlcmNM3uAY1e6/HH9hX/7UtIBA9/CHuwYzasw6j2PTZt Wu4oun3A1JYGtgjfZQYQaabn2x6kWzT04kntzsI3ny5R2awHRfDJAezmmbc1gqhLpfVn ibQBrAX4vQXNlUzoJKClpjYBi7QceLdNxo7NyNKzGcWpGRP1QllMKNp+jzSqtM9285UZ 7Tnc82rjVi9l6Pp2d8J373S/cqcyXnoqELlT+RYKsP0wTaNXlJAucPjaWyaftyZO36OA luzw==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=KZmW0il4; spf=pass (google.com: domain of fm-1328765-20260218124525e2029b45930002077e-cyvqff@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328765-20260218124525e2029b45930002077e-cYvQFf@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=1771418728; x=1772023528; 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:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=LdYl9Z3woC8xb8R6qAWsHaw15JOO1D2wT2oH5Sntam8=; b=nTRBuoRH46p8pJMRBdqRH7Yp1n7jbk6m9PcQc1Avg+rs2X0Yy/2macenKAyn355g6C PfAwWV2d+ZKjAWA9JZ2mJ6Oq9TLce9Blfj4uQM0hpWO+rVwjjO4HrNlHAXlmj7T3SnqO QazEi1MkSYnp5boCOAIZjir/Y3mIOtZMmeVGqeo6X5leyryrFNrOCV1kOBNny1QlNalV UAGSKGWyJlSbJu5CFaJBLi6q+v6QLeSu3pBLcO7qbDYXTd3c8J2oZqrmuia3pZ08TBmJ OWJC1D5gI+E54buF9eizEm42WUZO4Gjv7r+ZlWrwm75oVOaaxgIOJ95aWW0JsLG4zkPK Wx1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771418728; x=1772023528; 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:message-id:date:subject:cc:to:from:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=LdYl9Z3woC8xb8R6qAWsHaw15JOO1D2wT2oH5Sntam8=; b=gcPEB/z2m0r5VElgUhQSdNsU5j3lsuUM8oZUQAZqrStdY7JIlTNSVGC5ENMtlHMcW7 liv3Pr/zegWIzAWQS1HSRZeEBSanDomCXSAiFwzSrHaH5YwT9p9Fvzcgp9qJVbOV+qW0 /f8UHYnsi96e6e8ivZTheZhnxZzI5bZBoFem1aGNyOjCaKoJk4ecNuJuI34wwlg0aUGY 6eAbQ3mp1iu4wYoZKZ1avT6KrXAHQw6MUSxufQga9kavmEHseYLI9c6HbiYzBkBncs9S aoTbCRDhLV+Aw6KYYm62IFvj3xS0qSonmffXGtRBZRzJ6SGaL1mYMNstevL/4IIALiPt Z2AQ== X-Forwarded-Encrypted: i=2; AJvYcCWVqLWFR412LyqgW+Y5p7oxmA6XslXsaba8fD+ZDA3vpTle5WK3WJkQnTEQ8N4wRJRa1zr7XCY=@isar-build.org X-Gm-Message-State: AOJu0YwBSwGudXZbhGxh/1+n9zOnQFhz1sgPqkGuJojh8wf0v5uyCv9q uWExWQ+7fYgfbYMLBgOOAfIgykWqm9iAeUcdqWNSkJhLGty+lPbR9Lwp X-Received: by 2002:a05:600c:b93:b0:47a:94fc:d063 with SMTP id 5b1f17b1804b1-48370e38ba0mr181553965e9.1.1771418727997; Wed, 18 Feb 2026 04:45:27 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+HepJFlHw2gPC8lEA3OPOgv0CJmSA8j0lg40R3GKzcUYQ==" Received: by 2002:a05:600c:1d0e:b0:477:a036:8e82 with SMTP id 5b1f17b1804b1-483670215c3ls47904475e9.0.-pod-prod-08-eu; Wed, 18 Feb 2026 04:45:26 -0800 (PST) X-Received: by 2002:a05:600c:608a:b0:480:1e9e:f9b with SMTP id 5b1f17b1804b1-48398a58488mr37551445e9.16.1771418725873; Wed, 18 Feb 2026 04:45:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771418725; cv=none; d=google.com; s=arc-20240605; b=e9OKLlrxNkiiy86CvwrRh4VKReyZHv0ydx4KWkB3xHORviWmwnCwG3oHGcAuBNZWau m/hr4vXMZ0KDp4X88epR3Y/jIacHM2uTSYMIDXOhZb3xjBZeqG/x+c3dBJ63cptuezKC 74/2ODZBA2dTJbfkbTEitn0pi0cwi8FMj55OQEAcU7lBmsKvGRp9kwItOjdk+et1qSVZ NQscyEcKbOxOGpBUQHUEpMS5SRKKn4Zira5bseiIkRkAirBsnfi94XlrroZMjFwFvyWM fUAAP4ZNMYu7baTQL0vuTq1ntcRYv4SH8QCjQV8jjfrOEL2cnd0Rk1Lm76CBeKq00Z9E HYhw== 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:message-id:date :subject:cc:to:from:dkim-signature; bh=42/XdSHysGieNTWdbWVdUImldNWipNKV9WXCgc6JmsM=; fh=Pt40xOu0ssl96dVOzN1FNmNtHgqv9aW9VmLrBG8UyVY=; b=PwLB1tFOK+WYie8JuA/31WI3wyHkAwdpoC5OSw8HwC+F4dY1W0mDJoyDf4NsHCo0LQ 1iMe2h6MGMmeXeZWf+i7SX21keG+1ohrDpAqpNtixLqmwKFupOj+3MfnNbJYO0CLqhk9 HuG36lioki1nToQFQoGq8mi0TDR90B+it3F0hnQjeYfAUNCrPdiHfrUIZxcN0+cEBDTc y3MbXTD5CyYvDvnrKKR11FTJYp5NkJ1FSuon5vdWmUqDQa5M4UTaWMN1Dxfq+j2G9Qcr RxgEbixFySaaoHwSWuaetEkcaIcuyeN7+4YSixDoHNpJOLrQ9a6hkEV8C/DVAi5Gq7jE hWUg==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=KZmW0il4; spf=pass (google.com: domain of fm-1328765-20260218124525e2029b45930002077e-cyvqff@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328765-20260218124525e2029b45930002077e-cYvQFf@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 ffacd0b85a97d-437969f1ddesi377078f8f.0.2026.02.18.04.45.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Feb 2026 04:45:25 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1328765-20260218124525e2029b45930002077e-cyvqff@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 20260218124525e2029b45930002077e for ; Wed, 18 Feb 2026 13:45:25 +0100 X-Patchwork-Original-From: "'Badrikesh Prusty' via isar-users" From: "Prusty, Badrikesh" To: isar-users@googlegroups.com Cc: Badrikesh Prusty Subject: [PATCH] installer: fix race condition with multiple consoles running unattended Date: Wed, 18 Feb 2026 07:45:06 -0500 Message-ID: <20260218124506.399124-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=KZmW0il4; spf=pass (google.com: domain of fm-1328765-20260218124525e2029b45930002077e-cyvqff@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328765-20260218124525e2029b45930002077e-cYvQFf@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 `/tmp/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. 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 | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 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..0097a4b4 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,7 +231,11 @@ version_ge() { fi } -if ! $installer_unattended; then +lockfile="/tmp/installer.lock" +progress_pipe="/tmp/progress" + +exec 9>"$lockfile" +if flock -n 9; then # Get bmap-tools version bmap_version=$(bmaptool --version | awk '{ print $NF }') @@ -259,16 +263,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" \