emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#28094: closed (cuirass doesn’t build i686 things)


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#28094: closed (cuirass doesn’t build i686 things)
Date: Sat, 26 Aug 2017 08:52:01 +0000

Your message dated Sat, 26 Aug 2017 10:51:13 +0200
with message-id <address@hidden>
and subject line Re: bug#28094: cuirass doesn’t build i686 things
has caused the debbugs.gnu.org bug report #28094,
regarding cuirass doesn’t build i686 things
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
28094: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28094
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: cuirass doesn’t build i686 things Date: Tue, 15 Aug 2017 09:43:47 +0200 User-agent: mu4e 0.9.18; emacs 25.2.1
Hi Guix,

it looks like Cuirass refuses to build i686 things because that would
violate a UNIQUE constraint:

--8<---------------cut here---------------start------------->8---
@ build-started /gnu/store/2qpglj9ylcb72c51m1qr8qfmdi20aa16-grub-2.02.drv - 
i686-linux 
/var/log/guix/drvs/2q//pglj9ylcb72c51m1qr8qfmdi20aa16-grub-2.02.drv.bz2
In ice-9/boot-9.scm:
   230:29 19 (map1 (((#:eval-id . 5) (#:duration . 102000.0) # # ?) ?))
   230:29 18 (map1 (((#:eval-id . 5) (#:duration . 69000.0) # # ?) ?))
   230:29 17 (map1 (((#:eval-id . 5) (#:duration . 86000.0) # # ?) ?))
   230:29 16 (map1 (((#:eval-id . 5) (#:duration . 81000.0) # # ?) ?))
   230:29 15 (map1 (((#:eval-id . 5) (#:duration . 82000.0) # # ?) ?))
   230:29 14 (map1 (((#:eval-id . 5) (#:duration . 68000.0) # # ?) ?))
   230:29 13 (map1 (((#:eval-id . 5) (#:duration . 74000.0) # # ?) ?))
   230:29 12 (map1 (((#:eval-id . 5) (#:duration . 77000.0) # # ?) ?))
   230:29 11 (map1 (((#:eval-id . 5) (#:duration . 98000.0) # # ?) ?))
   230:29 10 (map1 (((#:eval-id . 5) (#:duration . 103000.0) # # ?) ?))
   230:29  9 (map1 (((#:eval-id . 5) (#:duration . 75000.0) # # ?) ?))
   230:29  8 (map1 (((#:eval-id . 5) (#:duration . 74000.0) # # ?) ?))
   230:29  7 (map1 (((#:eval-id . 5) (#:duration . 75000.0) # # ?) ?))
   230:29  6 (map1 (((#:eval-id . 5) (#:duration . 64000.0) # # ?) ?))
   230:17  5 (map1 (((#:eval-id . 5) (#:duration . 147000.0) # # ?) ?))
In cuirass/base.scm:
    145:6  4 (register _)
In ice-9/boot-9.scm:
   268:13  3 (for-each #<procedure 4a51ae0 at cuirass/base.scm:145:?> ?)
In cuirass/database.scm:
    186:2  2 (db-add-build #<<sqlite-db> pointer: #<pointer 0x23455?> ?)
    54:28  1 (sqlite-exec _ _ . _)
In ice-9/eval.scm:
    619:8  0 (_ #(#(#(#(#<directory (sqlite3) 23c0a00> #<?>) #) #) #))
ice-9/eval.scm:619:8: ice-9/eval.scm:619:8: Throw to key `sqlite-error' with 
args `(#f 1555 "UNIQUE const
raint failed: Builds.derivation, Builds.evaluation, Builds.output")'.
--8<---------------cut here---------------end--------------->8---

https://berlin.guixsd.org is configured to provide substitutes for
x86_64 and i686 yet it has barely built any i686 packages so far.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net




--- End Message ---
--- Begin Message --- Subject: Re: bug#28094: cuirass doesn’t build i686 things Date: Sat, 26 Aug 2017 10:51:13 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Hello!

Ricardo Wurmus <address@hidden> skribis:

>> diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
>> index 91133c2..9c7e69a 100644
>> --- a/src/cuirass/database.scm
>> +++ b/src/cuirass/database.scm
>> @@ -181,15 +181,30 @@ string."
>>              ((char=? char #\')  (loop (cons* char char chars)))
>>              (else (loop (cons char chars)))))))
>>
>> +;; Extended error codes (see <sqlite3.h>).
>> +;; XXX: This should be defined by (sqlite3).
>> +(define SQLITE_CONSTRAINT 19)
>> +(define SQLITE_CONSTRAINT_PRIMARYKEY
>> +  (logior SQLITE_CONSTRAINT (ash 6 8)))
>> +
>>  (define (db-add-build db build)
>> -  "Store BUILD in database DB."
>> -  (sqlite-exec db "\
>> +  "Store BUILD in database DB.  This is idempotent."
>> +  (catch 'sqlite-error
>> +    (lambda ()
>> +      (sqlite-exec db "\
>>  INSERT INTO Builds (derivation, evaluation, log, output)\
>>    VALUES ('~A', '~A', '~A', '~A');"
>> -               (assq-ref build #:derivation)
>> -               (assq-ref build #:eval-id)
>> -               (assq-ref build #:log)
>> -               (assq-ref build #:output))
>> +                   (assq-ref build #:derivation)
>> +                   (assq-ref build #:eval-id)
>> +                   (assq-ref build #:log)
>> +                   (assq-ref build #:output)))
>> +    (lambda (key who code . rest)
>> +      ;; If we get a primary-key-constraint-violated error, that means we 
>> have
>> +      ;; already inserted the same (derivation,eval-id,log) tuple, which we
>> +      ;; can safely ignore.
>> +      (unless (= code SQLITE_CONSTRAINT_PRIMARYKEY)
>> +        (apply throw key who code rest))))
>> +
>
> Unfortunately, re-throwing the error doesn’t print any meaningful error
> message.  To get the error message that I showed above I caught any
> sqlite errors and re-threw the exception only after printing the
> arguments to sqlite-exec:
>
>     (format (current-error-port) "Database error with ~a and ~a~%" msg args)
>
> I think it would be good to include a line like this right after
> “(unless (= code SQLITE_CONSTRAINT_PRIMARYKEY)”.

Good idea.  Pushed with a test case as
72f2b6b77cc4e3d7629bdf34e6daee05398b8de1.

Thanks,
Ludo’.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]