Parallel executions of gen-bootloader-iso.sh can cause install failures

Bug #1885779 reported by Don Penney
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Fix Released
Medium
Don Penney

Bug Description

Brief Description
-----------------
Parallel execution of gen-bootloader-iso.sh can lead to a partial boot setup, if the "shared" files have not finished setup when the subsequent executions run. This can lead to installation failures as some required shared data may not be accessible.

Severity
--------
Minor

Steps to Reproduce
------------------
Run utility in two separate windows, one after the other. The first execution starts setting up the shared files. The second will attempt to use the shared content.

Expected Behavior
------------------
It is expected that all install setups would have access to all shared content.

Actual Behavior
----------------
Some setups may only have partial shared content.

Reproducibility
---------------
Intermittent. A number of steps in DC subcloud installs run prior to the execution of gen-bootloader.sh, and all would need to complete within the same timeframe in order to trigger parallel executions of the utility.

System Configuration
--------------------
distributed cloud

Branch/Pull Time/Commit
-----------------------
Seen in master, June 30, 2020

Workaround
----------
Use serial install for subclouds

Don Penney (dpenney)
Changed in starlingx:
assignee: nobody → Don Penney (dpenney)
Ghada Khalil (gkhalil)
tags: added: stx.config
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to utilities (master)

Fix proposed to branch: master
Review: https://review.opendev.org/738699

Changed in starlingx:
status: New → In Progress
Revision history for this message
Ghada Khalil (gkhalil) wrote :

stx.5.0 / medium priority - issue with parallel subcloud installs; serial installs work

Changed in starlingx:
importance: Undecided → Medium
tags: added: stx.5.0
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to utilities (master)

Reviewed: https://review.opendev.org/738699
Committed: https://git.openstack.org/cgit/starlingx/utilities/commit/?id=7ed511a6a0b861573bd9224a8a2a2ff6a031f463
Submitter: Zuul
Branch: master

commit 7ed511a6a0b861573bd9224a8a2a2ff6a031f463
Author: Don Penney <email address hidden>
Date: Tue Jun 30 17:19:14 2020 -0400

    Protect against parallel exec of gen-bootloader-iso.sh

    The bulk of the work done by gen-bootloader-iso.sh is not safe to be
    executed by two callers in parallel. If the initial execution is
    setting up shared files when a subsequent call starts, the subsequent
    call can end up with an incomplete set of symlinks to shared files.
    This, in turn, can result in installation failures.

    To protect against this, a file lock is added to gen-bootloader-iso.sh
    to prevent subsequent calls from accessing shared files before they're
    completely setup.

    Change-Id: Id6def4527b226b8746b2b8ff74059c0d3937e130
    Closes-Bug: 1885779
    Signed-off-by: Don Penney <email address hidden>

Changed in starlingx:
status: In Progress → Fix Released
Revision history for this message
Ghada Khalil (gkhalil) wrote :

Changing the release tag to stx.4.0 since the fix made it for that release.

tags: added: stx.4.0
removed: stx.5.0
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to utilities (f/centos8)

Fix proposed to branch: f/centos8
Review: https://review.opendev.org/c/starlingx/utilities/+/792213

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.