non overalapping change to requirements repo broke gate

Bug #1274731 reported by Joe Gordon on 2014-01-30
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Core Infrastructure
In Progress
Medium
James E. Blair

Bug Description

If we change a global-requirement in a non overlapping way... like

psutil < 1.0

to

psutil > 1.1

We cause a lot of failures in the gate.

The reason is that the requirements change is co-gating. So requirement enters gate.

Everything behind that requirement is told to use the new thing. It can't, it's not in the mirror, and only the requirements job is allowed to punch through the mirror.

Changes behind the requirements change will then fail, over and over again. Gate carnage will ensue. Until eventually the requirements change merges, triggers a mirror rebuild, and that then updates the mirror.

We should probably either prevent this in requirements, or we should come up with a way to let projects punch holes in the mirror if they are in a window where requirements change is going on.

message:"Could not find a version that satisfies the requirement psutil>1.1.0" AND filename:console.html

The following non-overlapping requirements change https://git.openstack.org/cgit/openstack/requirements/commit/?id=ee07adf62d874266be433bf1c4c2073f4460f661 broke the gate because there is a small lag in the pypi.openstack.org mirror job

Sean Dague (sdague) on 2014-01-30
description: updated
James E. Blair (corvus) wrote :

This could be prevented with a fairly minor change to the requirements check job. Adding low-hanging-fruit tag accordingly.

Changed in openstack-ci:
status: New → Confirmed
importance: Undecided → Medium
milestone: none → icehouse
tags: added: low-hanging-fruit
Changed in openstack-ci:
assignee: nobody → Yolanda Robla (yolanda.robla)

Fix proposed to branch: master
Review: https://review.openstack.org/84100

Changed in openstack-ci:
status: Confirmed → In Progress

Reviewed: https://review.openstack.org/84100
Committed: https://git.openstack.org/cgit/openstack-infra/config/commit/?id=a57bd21836a7441a626c46098b25c4a9c3920b1a
Submitter: Jenkins
Branch: master

commit a57bd21836a7441a626c46098b25c4a9c3920b1a
Author: Yolanda Robla <email address hidden>
Date: Mon Mar 31 12:27:05 2014 +0200

    Checks if requirements overlap between head and branch reqs

    If there is a requirement in head and branches, and are not equal,
    check if the head requirement is overlapping with branch one,
    if not it triggers an error

    Change-Id: I159e4608a5d345e57ae24fd19b1c54c1de4ed9d9
    Closes-Bug: #1274731

Changed in openstack-ci:
status: In Progress → Fix Released
Jeremy Stanley (fungi) wrote :

This change actually ended up enforcing overlap on project-specific requirements changes rather than global requirements changes, spawning bug 1326504. It is being reverted, then we can regroup and look into inserting it into the right place.

Changed in openstack-ci:
status: Fix Released → Confirmed
Jeremy Stanley (fungi) wrote :

I think the place to have it apply to the requirements repo is by adding a test script in openstack/requirements and then running it via tox from a new job (the skeleton would probably look like openstack-infra/config's config-compare-xml job which compares configuration between the parent commit and the proposed one).

Jeremy Stanley (fungi) on 2014-10-27
Changed in openstack-ci:
milestone: icehouse → kilo

Fix proposed to branch: master
Review: https://review.openstack.org/142152

Changed in openstack-ci:
assignee: Yolanda Robla (yolanda.robla) → James E. Blair (corvus)
status: Confirmed → In Progress

Reviewed: https://review.openstack.org/142152
Committed: https://git.openstack.org/cgit/openstack-infra/project-config/commit/?id=895611a451e034654f0130673b1411c26e448c3d
Submitter: Jenkins
Branch: master

commit 895611a451e034654f0130673b1411c26e448c3d
Author: James E. Blair <email address hidden>
Date: Tue Dec 16 08:24:57 2014 -0800

    Remove requirements overlap check

    The requirements overlap check was originally designed to address
    a behavior introduced by our requirements-driven pypi mirror. Now
    that we use full mirrors of pypi, it is no longer necessary and
    is an artifical restriction that may cause problems for us.

    Change-Id: I7d2302d4a0ba0def9d6fcc5af89e6e7a5d1fab45
    Partial-Bug: 1274731

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

Other bug subscribers