Zuul should remove unmergable changes from queue as soon as possible.

Bug #1123329 reported by Clark Boylan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Zuul
Fix Committed
Undecided
Clark Boylan

Bug Description

When a change in a DependentPipeline cannot merge with the current state of the Pipeline zuul keeps it queued as it is possible that as the Pipeline changes the unmergable change will become mergable. This often limits zuuls ability to test as many changes as possible in parallel. Zuul should check if a currently unmergable change has any chance of merging and remove the change if it does not.

An example of what happens to zuul's queue when things cannot merge:
 Project openstack/nova change 21701,2
  gate-nova-docs: SUCCESS
  gate-nova-pep8: SUCCESS
  gate-nova-python26: SUCCESS
  gate-nova-python27: SUCCESS
  gate-tempest-devstack-vm-full: SUCCESS
  gate-tempest-devstack-vm-postgres-full: SUCCESS
  gate-tempest-devstack-vm-quantum: SUCCESS
Followed by:
  Project openstack/nova change 21592,3
    gate-nova-docs: SUCCESS
    gate-nova-pep8: SUCCESS
    gate-nova-python26: SUCCESS
    gate-nova-python27: SUCCESS
    gate-tempest-devstack-vm-full: None
    gate-tempest-devstack-vm-postgres-full: None
    gate-tempest-devstack-vm-quantum: SUCCESS
  Followed by:
    Project openstack/nova change 21287,2
      gate-nova-docs: SKIPPED
      gate-nova-pep8: SKIPPED
      gate-nova-python26: SKIPPED
      gate-nova-python27: SKIPPED
      gate-tempest-devstack-vm-full: SKIPPED
      gate-tempest-devstack-vm-postgres-full: SKIPPED
      gate-tempest-devstack-vm-quantum: SKIPPED
    Followed by:
      Project openstack/nova change 21568,1
        gate-nova-docs: SKIPPED
        gate-nova-pep8: SKIPPED
        gate-nova-python26: SKIPPED
        gate-nova-python27: SKIPPED
        gate-tempest-devstack-vm-full: SKIPPED
        gate-tempest-devstack-vm-postgres-full: SKIPPED
        gate-tempest-devstack-vm-quantum: SKIPPED
      Followed by:
        Project openstack/nova change 21414,4
          gate-nova-docs: SKIPPED
          gate-nova-pep8: SKIPPED
          gate-nova-python26: SKIPPED
          gate-nova-python27: SKIPPED
          gate-tempest-devstack-vm-full: SKIPPED
          gate-tempest-devstack-vm-postgres-full: SKIPPED
          gate-tempest-devstack-vm-quantum: SKIPPED
        Followed by:
          Project openstack/nova change 21695,2
            gate-nova-docs: SKIPPED
            gate-nova-pep8: SKIPPED
            gate-nova-python26: SKIPPED
            gate-nova-python27: SKIPPED
            gate-tempest-devstack-vm-full: SKIPPED
            gate-tempest-devstack-vm-postgres-full: SKIPPED
            gate-tempest-devstack-vm-quantum: SKIPPED
          Followed by:
            Project openstack/nova change 21101,11
              gate-nova-docs: SKIPPED
              gate-nova-pep8: SKIPPED
              gate-nova-python26: SKIPPED
              gate-nova-python27: SKIPPED
              gate-tempest-devstack-vm-full: SKIPPED
              gate-tempest-devstack-vm-postgres-full: SKIPPED
              gate-tempest-devstack-vm-quantum: SKIPPED
            Followed by:
              Project openstack/tempest change 21779,1
                gate-tempest-pep8: SKIPPED
                gate-tempest-devstack-vm-full: SKIPPED
                gate-tempest-devstack-vm-postgres-full: SKIPPED
                gate-tempest-devstack-vm-quantum: SKIPPED
                gate-tempest-devstack-vm-quantum-full: SKIPPED (non-voting)
              Followed by:
                Project openstack/nova change 21603,3
                  gate-nova-docs: SKIPPED
                  gate-nova-pep8: SKIPPED
                  gate-nova-python26: SKIPPED
                  gate-nova-python27: SKIPPED
                  gate-tempest-devstack-vm-full: SKIPPED
                  gate-tempest-devstack-vm-postgres-full: SKIPPED
                  gate-tempest-devstack-vm-quantum: SKIPPED
                Followed by:
                  Project openstack/keystone change 19820,24
                    gate-keystone-docs: SKIPPED
                    gate-keystone-pep8: SKIPPED
                    gate-keystone-python26: SKIPPED
                    gate-keystone-python27: SKIPPED
                    gate-tempest-devstack-vm-full: SKIPPED
                    gate-tempest-devstack-vm-postgres-full: SKIPPED
                    gate-tempest-devstack-vm-quantum: SKIPPED
                  Followed by:
                    Project openstack/python-novaclient change 21098,4
                      gate-python-novaclient-docs: SKIPPED
                      gate-python-novaclient-pep8: SKIPPED
                      gate-python-novaclient-python26: SKIPPED
                      gate-python-novaclient-python27: SKIPPED
                      gate-tempest-devstack-vm-full: SKIPPED
                      gate-tempest-devstack-vm-postgres-full: SKIPPED
                      gate-tempest-devstack-vm-quantum: SKIPPED
                    Followed by:
                      Project openstack/nova change 21734,3
                        gate-nova-docs: SKIPPED
                        gate-nova-pep8: SKIPPED
                        gate-nova-python26: SKIPPED
                        gate-nova-python27: SKIPPED
                        gate-tempest-devstack-vm-full: SKIPPED
                        gate-tempest-devstack-vm-postgres-full: SKIPPED
                        gate-tempest-devstack-vm-quantum: SKIPPED
                      Followed by:
                        Project openstack/nova change 21796,1
                          gate-nova-docs: SKIPPED
                          gate-nova-pep8: SKIPPED
                          gate-nova-python26: SKIPPED
                          gate-nova-python27: SKIPPED
                          gate-tempest-devstack-vm-full: SKIPPED
                          gate-tempest-devstack-vm-postgres-full: SKIPPED
                          gate-tempest-devstack-vm-quantum: SKIPPED
                        Followed by:
                          Project openstack/nova change 21573,6
                            gate-nova-docs: SKIPPED
                            gate-nova-pep8: SKIPPED
                            gate-nova-python26: SKIPPED
                            gate-nova-python27: SKIPPED
                            gate-tempest-devstack-vm-full: SKIPPED
                            gate-tempest-devstack-vm-postgres-full: SKIPPED
                            gate-tempest-devstack-vm-quantum: SKIPPED

Changed in zuul:
assignee: nobody → Clark Boylan (cboylan)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to zuul (master)

Reviewed: https://review.openstack.org/21723
Committed: http://github.com/openstack-infra/zuul/commit/81f0b5763955fcd082dcf1ab4aaad6dd9ccf4191
Submitter: Jenkins
Branch: master

commit 81f0b5763955fcd082dcf1ab4aaad6dd9ccf4191
Author: Clark Boylan <email address hidden>
Date: Mon Feb 11 17:48:43 2013 -0800

    Dequeue changes if they have no hope of merging.

    In the DependentPipeline remove changes if they have absolutely no
    chance of merging (all possible merge combinations fail). This allows
    zuul to remove changes as soon as possible when it is known that they
    cannot merge and continue testing the remaining changes.

    Fixes bug 1123329

    Change-Id: I97af03cca997541f6a8b3fb519d2a44825dbd937

Changed in zuul:
status: In Progress → Fix Committed
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.