Skip to content
Snippets Groups Projects
This project is mirrored from https://git.savannah.gnu.org/git/guix/guix-cuirass.git/. Pull mirroring updated .
  1. Apr 02, 2018
    • Ludovic Courtès's avatar
      base: Make a writable copy of the checkout only when #:no-compile? is false. · 2fe7ff87
      Ludovic Courtès authored
      This avoids copying things back and forth.
      
      * src/cuirass/base.scm (fetch-repository): Add #:writable-copy?
      parameter.  Call 'make-writable-copy' when it's true.
      (copy-repository-cache): Remove.
      (make-writable-copy): New procedure.
      (evaluate): Add 'source' parameter and pass it to the 'evaluate' program.
      (process-specs): Define 'compile?'.  Pass #:writable-copy? to
      'fetch-repository'.  Remove call to 'copy-repository-cache'.  Remove
      computation of the checkout directory name.  Pass CHECKOUT to 'evaluate'.
      * bin/evaluate.in (main): Replace 'cachedir' with 'source'.  Remove
      computation of the checkout directory name.
      2fe7ff87
  2. Mar 29, 2018
    • Ludovic Courtès's avatar
      database: 'db-get-builds' honors 'status+submission-time' ordering again. · 8eefd246
      Ludovic Courtès authored
      Fixes a regression introduced in
      1bab5c4e whereby the
      'status+submission-time' order would no longer be honored.
      
      As a result, /api/queue would return the queue ordered by build IDs,
      making it largely useless.
      
      * src/cuirass/database.scm (db-get-builds): Remove 'order' and rename
      'order-column-name' to 'order'.  Add case for 'status+submission-time'.
      * tests/database.scm ("database")["db-get-builds"]: Move below
      "db-update-build-status!" test.  Add case for the
      'status+submission-time' order.
      8eefd246
    • Ludovic Courtès's avatar
      http: Process client connections really concurrently, again. · 8bdde878
      Ludovic Courtès authored
      This reinstates c47dfdf8 and fixes the
      issues that led to the revert in
      b71f0cdc.
      
      Before that, 'run-server' would force sequential processing of client
      requests one after another.
      
      * src/cuirass/http.scm (run-cuirass-server): Rewrite to use its own loop
      instead of 'run-server'.  Spawn a database fiber.
      (with-database-access): New macro.
      (handle-build-request): Expect 'db-channel' and use 'with-database-access'.
      (handle-builds-request): Likewise.
      (url-handler): Likewise.
      8bdde878
  3. Mar 28, 2018
  4. Mar 25, 2018
  5. Mar 20, 2018
  6. Mar 18, 2018
    • Ludovic Courtès's avatar
      http: Correctly set #:timestamp for non-finished builds. · 787969c9
      Ludovic Courtès authored
      Fixes a regression introduced in
      f083282f, whereby we'd return 0 as the
      timestamp for everything in /api/queue.
      
      * src/cuirass/http.scm (build->hydra-build): Make 'finished?' a
      Boolean.  Move 'bool->int' call in #:finished definition.
      787969c9
    • Ludovic Courtès's avatar
      base: Catch errors in the 'process-build-log' handler. · 2096ebe6
      Ludovic Courtès authored
      Previously, when an exception was raised from
      'handle-build-event' (e.g., a "database is locked" error), we'd throw,
      thereby leaving PORT open and we'd never read from it again.  Thus, the
      corresponding 'guix-daemon' process would eventually get stuck in a
      'write' call to that socket, and its build processes would stall.
      
      * src/cuirass/base.scm (exception-reporter): New procedure.
      (spawn-builds): Use it.
      2096ebe6
  7. Mar 02, 2018
  8. Mar 01, 2018
  9. Feb 27, 2018
  10. Feb 20, 2018
  11. Feb 15, 2018
  12. Feb 14, 2018
  13. Feb 10, 2018
  14. Feb 09, 2018
    • Ludovic Courtès's avatar
      utils: 'non-blocking' forwards exceptions to the calling fiber. · ef3801b3
      Ludovic Courtès authored
      * src/cuirass/utils.scm (%non-blocking): Forward exceptions to the
      calling fiber.
      ef3801b3
    • Ludovic Courtès's avatar
      database: Use argument binding in 'db-get-builds' queries. · 8c7c9392
      Ludovic Courtès authored
      That makes it safe from SQL injection.
      
      * src/cuirass/database.scm (db-get-builds): Rewrite to use question
      marks in SQL queries and binding through '%sqlite-exec'.
      * tests/database.scm ("database")["db-get-builds"]: Exercise 'WHERE'
      clauses.
      8c7c9392
    • Ludovic Courtès's avatar
      database: Handle binding directly in 'sqlite-exec'. · b0c39b31
      Ludovic Courtès authored
      The new macro automatically takes care of inserting question marks in
      the SQL queries, which in turn guarantees that there are always as many
      question marks and arguments.
      
      * src/cuirass/database.scm (sqlite-exec): Rename to...
      (%sqlite-exec): ... this.
      (sqlite-exec/bind, sqlite-exec): New macros.
      (assq-refs): Remove.
      (db-add-specification): Use the new 'sqlite-exec' form.
      (db-get-specifications): Correctly deal with REV or TAG being #f.
      (db-add-derivation, db-get-derivation, db-add-evaluation)
      (db-add-build, db-update-build-status!, db-get-outputs)
      (db-get-build, db-get-stamp, db-add-stamp): Adjust to the new
      'sqlite-exec' form.
      b0c39b31
  15. Feb 08, 2018
Loading