Permalink
Commits on Feb 23, 2017
Commits on Feb 21, 2017
  1. Lock paths in the scm cache

    This is necessary now that hydra-evaluator runs multiple evaluations
    in parallel, to prevent corruption of Git/Mercurial clones.
    edolstra committed Feb 21, 2017
  2. hydra-evaluator: Handle SIGINT

    This makes "systemctl stop hydra-evaluator" work promptly again.
    edolstra committed Feb 21, 2017
  3. Move most of AddBuilds to hydra-eval-jobset

    Having this stuff in a separate module is a remnant of the time when
    hydra-server could add builds to the queue directly. This is no longer
    the case.
    edolstra committed Feb 21, 2017
Commits on Feb 3, 2017
  1. Decrease memoryTokens

    edolstra committed Feb 3, 2017
  2. Use latest nixUnstable

    edolstra committed Feb 3, 2017
Commits on Jan 30, 2017
  1. Revert "Sort inputs table" (#448)

    This reverts commit c103163.
    
    Fixes #412 #445
    k0001 committed with domenkozar Jan 30, 2017
Commits on Dec 9, 2016
Commits on Dec 8, 2016
  1. Fix version test

    edolstra committed Dec 8, 2016
Commits on Dec 7, 2016
  1. Allow determinism checking for entire jobsets

    Setting
    
      xxx-jobset-repeats = patchelf:master:2
    
    will cause Hydra to perform every build step in the specified jobset 2
    additional times (i.e. 3 times in total). Non-determinism is not fatal
    unless the derivation has the attribute "isDeterministic = true"; we
    just note the lack of determinism in the Hydra database. This will
    allow us to get stats about the (lack of) reproducibility of all of
    Nixpkgs.
    edolstra committed Dec 7, 2016
Commits on Dec 6, 2016
  1. Support testing build determinism

    Builds can now specify the attribute "isDeterministic = true" to tell
    Hydra to build with build-repeat > 0. If there is a mismatch between
    rounds, the step / build fails with a suitable status.
    
    Maybe this should be a meta attribute, but that makes it invisible to
    hydra-queue-runner, and it seems reasonable to make a claim of
    mandatory determinism part of the derivation (since e.g. enabling this
    flag should trigger a rebuild).
    edolstra committed Dec 6, 2016
  2. Revert "Remove the global channel"

    This reverts commit 2f6c2f5.
    
    This unintentionally also removed /all, which is actually somewhat
    useful.
    edolstra committed Dec 6, 2016
Commits on Nov 29, 2016
  1. Remove logfile.css from templates (#428)

    It is no longer used, and causes unnecessary 404s
    sopvop committed with domenkozar Nov 29, 2016
Commits on Nov 24, 2016
Commits on Nov 17, 2016
  1. Remove the global channel

    It's useless and it makes it very easy to kill the server by fetching
    /channel/latest/closure.
    edolstra committed Nov 17, 2016
Commits on Nov 16, 2016
  1. Bump Nix dependency

    edolstra committed Nov 16, 2016
  2. hydra-queue-runner: More accurate memory accounting

    We now take into account the memory necessary for compressing the NAR
    being exported to the binary cache, plus xz compression overhead.
    
    Also, we now release the memory tokens for the NAR accessor *after*
    releasing the NAR accessor. Previously the memory for the NAR accessor
    might still be in use while another thread does an allocation, causing
    the maximum to be exceeded temporarily.
    
    Also, use notify_all instead of notify_one to wake up memory token
    waiters. This is not very nice, but not every waiter is requesting the
    same number of tokens, so some might be able to proceed.
    edolstra committed Nov 16, 2016
Commits on Nov 9, 2016
  1. Bump Nix

    Fixes #398.
    edolstra committed Nov 9, 2016
Commits on Nov 8, 2016
  1. hydra-queue-runner: Fix a race keeping cancelled steps alive

    If a step is cancelled just as its builder step is starting,
    doBuildStep() will return sRetry. This causes builder() to make the
    step runnable again, since the queue monitor may have added new builds
    referencing it. The idea is that if the latter condition is not true,
    the step's reference count will drop to zero and it will be
    deleted. However, if the dispatcher thread sees and locks the step
    before the reference count can drop to zero in the builder thread, the
    dispatcher thread will start a new builder thread for the step. Thus
    the step can be kept alive for an indefinite amount of time.
    
    The fix is for State::builder() to use a weak pointer to the step, to
    ensure that the step's reference count can drop to zero *before* it's
    added to the runnable queue.
    edolstra committed Nov 8, 2016
  2. hydra-queue-runner: Handle exceptions in the dispatcher thread

    E.g. "resource unavailable" when creating new threads.
    edolstra committed Nov 8, 2016
Commits on Nov 7, 2016
  1. Step cancellation: Don't use pthread_cancel()

    This was a bad idea because pthread_cancel() is unsalvageable broken
    in C++. Destructors are not allowed to throw exceptions (especially in
    C++11), but pthread_cancel() can cause a __cxxabiv1::__forced_unwind
    exception inside any destructor that invokes a cancellation
    point. (This exception can be caught but *must* be rethrown.) So let's
    just kill the builder process instead.
    edolstra committed Nov 7, 2016
  2. Merge pull request #407 from grahamc/images

    Update build images to be more friendly to users with color blindness.
    edolstra committed on GitHub Nov 7, 2016
Commits on Nov 2, 2016
  1. hydra-queue-runner: Fix assertion failure

    It was hitting
    
        assert(reservation.unique());
    
    Since we do want the machine reservation to be released before calling
    wakeDispatcher(), let's use a different object for keeping track of
    active steps.
    edolstra committed Nov 2, 2016
Commits on Nov 1, 2016
  1. Handle Referer not having a trailing slash

    Fixes #415.
    edolstra committed Nov 1, 2016