Keep track of the time we spend copying to/from build machines

[?]
Feb 17, 2016, 9:28 AM
FITVNQ2SVM6KSOF5P3HHWJYQ3WMQYDJGAONCBIZ7OF7CPXGMA36QC

Dependencies

  • [2] UJOSXBZI Record which build a failed build step was propagated from
  • [3] OG3Z3QGC Namespace cleanup
  • [4] DWFTK56E Keep track of how many threads are waiting
  • [5] MHVIT4JY Split hydra-queue-runner.cc more
  • [6] VQISTKOP hydra-queue-runner: Use substitutes
  • [7] 62MQPRXC Pass null values to libpqxx properly
  • [8] HH3LID6L Re-implement log size limits
  • [9] HJOEIMLR Refactor
  • [10] UQQ4IL55 Add a error type for "unsupported system type"
  • [11] IK2UBDAU Revive jobset scheduling
  • [12] TPNHTE5V Remove obsolete Builds columns and provide accurate "Running builds"
  • [13] PMNWRTGJ Add multiple output support
  • [14] 24BMQDZA Start of single-process hydra-queue-runner
  • [15] 5AIYUMTB Basic remote building
  • [16] KBZHIGLG Record the machine used for a build step
  • [*] CNLNT3T4 Allow only 1 thread to send a closure to a given machine at the same time
  • [*] LE4VZIY5 More stats
  • [*] A2GL5FOZ Moar stats
  • [*] N4IROACV Move buildRemote() into State
  • [*] CLJQCY2X * Store info about all the build actions and allow them to be
  • [*] EFWN7JBV * Added a status page that shows all the currently executing build steps.
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] 3E6IP3R3 * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
  • [*] D5QIOJGP * Move everything up one directory.

Change contents

  • edit in src/hydra-queue-runner/build-remote.cc at line 232
    [4.251]
    [18.98]
    auto now1 = std::chrono::steady_clock::now();
  • edit in src/hydra-queue-runner/build-remote.cc at line 236
    [18.157]
    [19.277]
    auto now2 = std::chrono::steady_clock::now();
    result.overhead += std::chrono::duration_cast<std::chrono::milliseconds>(now2 - now1).count();
  • edit in src/hydra-queue-runner/build-remote.cc at line 293
    [19.336]
    [20.932]
    auto now1 = std::chrono::steady_clock::now();
  • edit in src/hydra-queue-runner/build-remote.cc at line 297
    [20.998]
    [19.387]
    auto now2 = std::chrono::steady_clock::now();
    result.overhead += std::chrono::duration_cast<std::chrono::milliseconds>(now2 - now1).count();
  • replacement in src/hydra-queue-runner/builder.cc at line 168
    [5.5536][5.5536:5615]()
    finishBuildStep(txn, result.startTime, result.stopTime, build->id,
    [5.5536]
    [5.5615]
    finishBuildStep(txn, result.startTime, result.stopTime, result.overhead, build->id,
  • replacement in src/hydra-queue-runner/builder.cc at line 217
    [5.7356][5.7356:7478]()
    finishBuildStep(txn, result.startTime, result.stopTime, build->id, stepNr, machine->sshName, bssSuccess);
    [5.7356]
    [5.7478]
    finishBuildStep(txn, result.startTime, result.stopTime, result.overhead,
    build->id, stepNr, machine->sshName, bssSuccess);
  • replacement in src/hydra-queue-runner/builder.cc at line 338
    [5.12039][5.12039:12211]()
    finishBuildStep(txn, result.startTime, result.stopTime, build->id,
    stepNr, machine->sshName, buildStepStatus, result.errorMsg);
    [5.12039]
    [5.12211]
    finishBuildStep(txn, result.startTime, result.stopTime, result.overhead,
    build->id, stepNr, machine->sshName, buildStepStatus, result.errorMsg);
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 207
    [6.9262][6.9444:9554](),[6.9554][6.660:771]()
    void State::finishBuildStep(pqxx::work & txn, time_t startTime, time_t stopTime, BuildID buildId, int stepNr,
    const std::string & machine, BuildStepStatus status, const std::string & errorMsg, BuildID propagatedFrom)
    [6.9262]
    [6.9436]
    void State::finishBuildStep(pqxx::work & txn, time_t startTime, time_t stopTime, unsigned int overhead,
    BuildID buildId, int stepNr, const std::string & machine, BuildStepStatus status,
    const std::string & errorMsg, BuildID propagatedFrom)
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 214
    [6.413][6.772:942]()
    ("update BuildSteps set busy = 0, status = $1, propagatedFrom = $4, errorMsg = $5, startTime = $6, stopTime = $7, machine = $8 where build = $2 and stepnr = $3")
    [6.413]
    [6.414]
    ("update BuildSteps set busy = 0, status = $1, propagatedFrom = $4, errorMsg = $5, startTime = $6, stopTime = $7, machine = $8, overhead = $9 where build = $2 and stepnr = $3")
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 219
    [6.973][6.973:1014]()
    (machine, machine != "").exec();
    [6.973]
    [6.13421]
    (machine, machine != "")
    (overhead, overhead != 0).exec();
  • edit in src/hydra-queue-runner/state.hh at line 52
    [21.1787]
    [21.1787]
    unsigned int overhead = 0;
  • replacement in src/hydra-queue-runner/state.hh at line 367
    [6.7255][6.7255:7362]()
    void finishBuildStep(pqxx::work & txn, time_t startTime, time_t stopTime, BuildID buildId, int stepNr,
    [6.7255]
    [3.667]
    void finishBuildStep(pqxx::work & txn, time_t startTime, time_t stopTime,
    unsigned int overhead, BuildID buildId, int stepNr,
  • edit in src/lib/Hydra/Schema/BuildSteps.pm at line 99
    [2.84]
    [23.722]
    is_nullable: 1
    =head2 overhead
    data_type: 'integer'
  • edit in src/lib/Hydra/Schema/BuildSteps.pm at line 133
    [2.174]
    [22.2685]
    "overhead",
    { data_type => "integer", is_nullable => 1 },
  • replacement in src/lib/Hydra/Schema/BuildSteps.pm at line 204
    [2.499][2.499:641]()
    # Created by DBIx::Class::Schema::Loader v0.07033 @ 2015-02-25 16:27:20
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ZbOxzCzFN7fIT9M2BFY0iQ
    [2.499]
    [6.10118]
    # Created by DBIx::Class::Schema::Loader v0.07043 @ 2016-02-16 18:04:52
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TRALbEoaF/OIOyERYCyxkw
  • edit in src/sql/hydra.sql at line 276
    [22.7557]
    [25.5891]
    -- Time in milliseconds spend copying stuff from/to build machines.
    overhead integer,
  • file addition: upgrade-45.sql (----------)
    [26.3004]
    alter table BuildSteps add column overhead integer;