Comment 1 for bug 1358517

Revision history for this message
Antoine "hashar" Musso (hashar) wrote : Re: Internal Gearman server timeout for merge operations

We had another occurrence this time with:

  NoConnectedServersError: No connected Gearman servers

Still when attempting to submit a merge:merge job.

The issue appear to be in zuul.scheduler.BasePipelineManager.prepareRef() it set the merge state to PENDING before the job submission has been properly finished. Pseudo code:

  def prepareRef():
      if build_set.merge_state == build_set.PENDING:
            return False

      build_set.merge_state = build_set.PENDING
      self.sched.merger.mergeChanges(..)

If an exception is thrown, the build_set is still in PENDING state and we will never attempt to propose again a merge:merge job because of the early return.

prepareRef should thus set the merge state after self.sched.merger.mergeChanges().

python-gear: 0.5.5
Zuul: c9d11ab (Merge "Rename doc environment to docs") from Sept 16th