Container build fails due to a yanked python module

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

Bug Description

Brief Description
-----------------
Containers build fails while compiling python wheels. Problem is caused by pip attempting to download a recently released, but withdrawn ("yanked") module in pypi.org.

Severity
--------
Critical

Steps to reproduce
------------------
Build python wheels (cgcs-root/build-tools/build-wheels/build-base-wheels.sh)

Expected Behaviour
------------------
Wheels are built successfully

Actual Behavior
----------------
Module "lz4" fails to compile

Reproducibility
---------------
Reproducible

Branch/Pull Time/Commit
-----------------------
Master/2021-08-26

Last Pass
---------
Master/2021-08-23

Timestamp/Logs
--------------
23:49:49 [python3] Running: docker run --rm --env DISPLAY_RESULT=no -v /localdisk/loadbuild/jenkins/master-containers/20210827T031507Z/std/build-wheels-centos-stable/base:/wheels jenkins-20210827t031507z-wheelbuilder:centos-stable /docker-build-wheel.sh
23:49:49 [python3]
23:49:49 [python3] ############################################################
23:49:49 [python3] Building lz4-0.9.0-cp36-cp36m-linux_x86_64.whl
23:49:49 [python3] ############################################################
23:49:49 [python3] Cloning into 'python-lz4'...
23:49:49 [python3] /build-wheels/python-lz4 /build-wheels
23:49:49 [python3] From https://github.com/python-lz4/python-lz4
23:49:49 [python3] * tag v0.9.0 -> FETCH_HEAD
23:49:49 [python3] Note: checking out 'FETCH_HEAD'.
23:49:49 [python3]
23:49:49 [python3] You are in 'detached HEAD' state. You can look around, make experimental
23:49:49 [python3] changes and commit them, and you can discard any commits you make in this
23:49:49 [python3] state without impacting any branches by performing another checkout.
23:49:49 [python3]
23:49:49 [python3] If you want to create a new branch to retain commits you create, you may
23:49:49 [python3] do so (now or later) by using -b with the checkout command again. Example:
23:49:49 [python3]
23:49:49 [python3] git checkout -b new_branch_name
23:49:49 [python3]
23:49:49 [python3] HEAD is now at bc6fb12... Update README.rst
23:49:49 [python3] Traceback (most recent call last):
23:49:49 [python3] File "setup.py", line 160, in <module>
23:49:49 [python3] 'Programming Language :: Python :: 3.6',
23:49:49 [python3] File "/root/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 144, in setup
23:49:49 [python3] return distutils.core.setup(**attrs)
23:49:49 [python3] File "/usr/lib64/python3.6/distutils/core.py", line 108, in setup
23:49:49 [python3] _setup_distribution = dist = klass(attrs)
23:49:49 [python3] File "/root/.local/lib/python3.6/site-packages/setuptools/dist.py", line 448, in __init__
23:49:49 [python3] k: v for k, v in attrs.items()
23:49:49 [python3] File "/usr/lib64/python3.6/distutils/dist.py", line 281, in __init__
23:49:49 [python3] self.finalize_options()
23:49:49 [python3] File "/root/.local/lib/python3.6/site-packages/setuptools/dist.py", line 740, in finalize_options
23:49:49 [python3] ep.load()(self)
23:49:49 [python3] File "/root/.local/lib/python3.6/site-packages/setuptools/dist.py", line 747, in _finalize_setup_keywords
23:49:49 [python3] ep.load()(self, ep.name, value)
23:49:49 [python3] File "/build-wheels/python-lz4/.eggs/setuptools_scm-6.1.0-py3.6.egg/setuptools_scm/integration.py", line 26, in version_keyword
23:49:49 [python3] dist.metadata.version = _get_version(config)
23:49:49 [python3] File "/build-wheels/python-lz4/.eggs/setuptools_scm-6.1.0-py3.6.egg/setuptools_scm/__init__.py", line 192, in _get_version
23:49:49 [python3] template=config.write_to_template,
23:49:49 [python3] File "/build-wheels/python-lz4/.eggs/setuptools_scm-6.1.0-py3.6.egg/setuptools_scm/__init__.py", line 94, in dump_version
23:49:49 [python3] version_fields = parsed_version.release
23:49:49 [python3] AttributeError: 'Version' object has no attribute 'release'
23:49:49 [python3] Could not find dist/lz4-0.9.0-cp36-cp36m-linux_x86_64.whl
23:49:49 [python3] Searching for wheel:
23:49:49 [python3] find: 'dist/': No such file or directory
23:49:49 [python3] /build-wheels

Workaround
----------
None

Davlet Panech (dpanech)
Changed in starlingx:
assignee: nobody → Davlet Panech (dpanech)
Changed in starlingx:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to root (master)

Reviewed: https://review.opendev.org/c/starlingx/root/+/806425
Committed: https://opendev.org/starlingx/root/commit/699a7d4207415fd57e40894443aff28bd86675c5
Submitter: "Zuul (22348)"
Branch: master

commit 699a7d4207415fd57e40894443aff28bd86675c5
Author: Davlet Panech <email address hidden>
Date: Fri Aug 27 11:33:27 2021 -0400

    build-wheels: ignore yanked pypi.org modules

    1) Pip3 9.0.3 provided by CentOS does not ignore "yanked" modules
    published to pypi.org. This causes the builds to download modules
    that are broken. Solution: use the earliest version of pip where
    that bug is fixed (19.2.3)

    2) A number of recent versions of setuptools-scm are broken in pypi.org.
    Use last version known to work, 6.0.1

    Closes-Bug: 1941901
    Change-Id: I3ba746d36983ee3f24bf1d4089be71bf01f8066a
    Signed-off-by: Davlet Panech <email address hidden>

Changed in starlingx:
status: In Progress → Fix Released
Ghada Khalil (gkhalil)
Changed in starlingx:
importance: Undecided → Critical
tags: added: stx.6.0 stx.build
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.