Create BuildSteps race-free

[?]
Jun 9, 2015, 1:03 PM
LJILHOJ7QYXNTMKDQS6OU4PVCXPQ27C5KMQWHDBELCYP7FG3ZFYAC

Dependencies

  • [2] KBZHIGLG Record the machine used for a build step
  • [3] 5AIYUMTB Basic remote building
  • [4] 24BMQDZA Start of single-process hydra-queue-runner
  • [5] ENXUSMSV Make concurrency more robust

Change contents

  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 361
    [3.8256]
    [3.8256]
    /* Acquire an exclusive lock on BuildSteps to ensure that we don't
    race with other threads creating a step of the same build. */
    txn.exec("lock table BuildSteps in exclusive mode");
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 899
    [3.16702][2.1232:1366](),[2.1366][3.16786:16787](),[3.14169][3.16786:16787](),[3.16786][3.16786:16787]()
    finishBuildStep(txn, result.startTime, result.stopTime, build->id, stepNr, machine->sshName, bssFailed, result.errorMsg);
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 903
    [3.16983]
    [3.16983]
    finishBuildStep(txn, result.startTime, result.stopTime, build->id, stepNr, machine->sshName, bssFailed, result.errorMsg);