build: build-pkgs --reuse causes dependency errors

Bug #2029139 reported by Davlet Panech
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Fix Released
High
Davlet Panech

Bug Description

Brief Description
-----------------
The --reuse flag of build-pkgs causes spurious build errors due to missing build dependencies.

Example: containerd fails due to missing "BuildRequires: build-info-dev". But then later in the build "build-info-dev" gets compiled successfully. It looks like there's a bug in how build dependencies are analyzed with --reuse.

Severity
--------
Major

Steps to Reproduce
------------------
* Create a starlingx/master build environment
* Delete all files from $MY_WORKSPACE if necessary
* Download dependencies
* Enter the builder container and export STX_SHARED_REPO and STX_SHARED_SOURCE to enable --reuse
* Run build-pkgs --reuse

Expected Behavior
------------------
Build succeeds

Actual Behavior
----------------
containerd fails and its build log indicates "BuildRequires: build-info-dev" package is missing
build-info-dev build succeeds, having been attempted *after* containerd

Reproducibility
---------------
Seen once

System Configuration
--------------------
N/A

Branch/Pull Time/Commit
-----------------------
master/2023-07-27

Last Pass
---------
N/A

Timestamp/Logs
--------------

Note below how build-info succeeded *after* containerd

*** BUILDER LOG ***
22:56:18 2023-07-28 02:56:18,449 - debcontroller - INFO: build-info
[...]
22:56:18 2023-07-28 02:56:18,805 - debcontroller - ERROR: Failed to build: 1
22:56:18 2023-07-28 02:56:18,807 - debcontroller - ERROR: containerd
22:56:18 2023-07-28 02:56:18,807 - debcontroller - INFO: List of failed packages:
22:56:18 2023-07-28 02:56:18,808 - debcontroller - ERROR: containerd

*** CONTAINERD LOG ***
+==============================================================================+
| containerd 1.6.21.stx.2 (amd64) Thu, 27 Jul 2023 23:40:07 +0000 |
+==============================================================================+
[...]
The following packages have unmet dependencies:
 sbuild-build-depends-main-dummy : Depends: build-info-dev but it is not installable
E: Unable to correct problems, you have held broken packages.
[...]
Status: given-back

*** BUILD-INFO LOG ***
+==============================================================================+
| build-info 1.0-1.stx.7 (amd64) Fri, 28 Jul 2023 00:54:34 +0000 |
+==============================================================================+
[...]
Status: successful

Test Activity
-------------
N/A

Workaround
----------
N/A

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to integ (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/starlingx/integ/+/890456

Changed in starlingx:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to integ (master)

Reviewed: https://review.opendev.org/c/starlingx/integ/+/890456
Committed: https://opendev.org/starlingx/integ/commit/d33ee40aff1474ee6581cd38c2ee8cd633c449e0
Submitter: "Zuul (22348)"
Branch: master

commit d33ee40aff1474ee6581cd38c2ee8cd633c449e0
Author: Davlet Panech <email address hidden>
Date: Thu Aug 3 15:58:56 2023 -0400

    containerd: remove unnecessary Build-Depends

    Remove "Build-Depends: build-info-dev" . This package is not required at
    build time and causes a dependency error with "build-pkgs --reuse" .

    TESTS
    =====
    Run build-pkgs --clean --reuse --parallel 4

    Closes-Bug: 2029139

    Signed-off-by: Davlet Panech <email address hidden>
    Change-Id: Icab05e0ac8202a75e179d2a395ab8acbab4de340

Changed in starlingx:
status: In Progress → Fix Released
Ghada Khalil (gkhalil)
Changed in starlingx:
importance: Undecided → High
tags: added: stx.9.0 stx.build
Changed in starlingx:
assignee: nobody → Davlet Panech (dpanech)
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.