Subject: Re: bug#28094: cuirass doesn’t build i686 things

From: Ricardo Wurmus <[email-masked]>
Date: Thu, 24 Aug 2017 09:21:36 +0200

Ricardo Wurmus <[email-masked]> writes:

> Ricardo Wurmus <[email-masked]> writes:
>
>> Ricardo Wurmus <[email-masked]> writes:
>>
>>> it looks like Cuirass refuses to build i686 things because that would
>>> violate a UNIQUE constraint:
>>
>> I’ve seen this repeatedly for other derivations; all seem to be i686.
>> The error reporting is bad, so I don’t know exactly why this happens,
>> but one guess is that this is when a previously failed build process
>> succeeded.
>
> I’ve changed Cuirass locally to print a more detailed error message when
> this happens.  Here’s a recent error:
>
> --8<---------------cut here---------------start------------->8---
> Database error with INSERT INTO Builds (derivation, evaluation, log, output)  VALUES ('~A', '~A', '~A', '~A'); and (/gnu/store/zg0zpndricjwwbjv5087zw9hmdcd708y-curl-7.55.0.drv 2 #f /gnu/store/60671wa0i1fljll26fx7lxfl27fb27si-curl-7.55.0-doc)
> In ice-9/boot-9.scm:
>    230:29 19 (map1 (((#:eval-id . 2) (#:duration . 81000.0) # # …) …))
>    230:29 18 (map1 (((#:eval-id . 2) (#:duration . 70000.0) # # …) …))
>    230:29 17 (map1 (((#:eval-id . 2) (#:duration . 83000.0) # # …) …))
>    230:29 16 (map1 (((#:eval-id . 2) (#:duration . 89000.0) # # …) …))
>    230:29 15 (map1 (((#:eval-id . 2) (#:duration . 81000.0) # # …) …))
>    230:29 14 (map1 (((#:eval-id . 2) (#:duration . 131000.0) # # …) …))
>    230:29 13 (map1 (((#:eval-id . 2) (#:duration . 128000.0) # # …) …))
>    230:29 12 (map1 (((#:eval-id . 2) (#:duration . 100000.0) # # …) …))
>    230:29 11 (map1 (((#:eval-id . 2) (#:duration . 193000.0) # # …) …))
>    230:29 10 (map1 (((#:eval-id . 2) (#:duration . 113000.0) # # …) …))
>    230:29  9 (map1 (((#:eval-id . 2) (#:duration . 122000.0) # # …) …))
>    230:29  8 (map1 (((#:eval-id . 2) (#:duration . 91000.0) # # …) …))
>    230:29  7 (map1 (((#:eval-id . 2) (#:duration . 101000.0) # # …) …))
>    230:29  6 (map1 (((#:eval-id . 2) (#:duration . 87000.0) # # …) …))
>    230:29  5 (map1 (((#:eval-id . 2) (#:duration . 67000.0) # # …) …))
>    230:29  4 (map1 (((#:eval-id . 2) (#:duration . 75000.0) # # …) …))
>    230:17  3 (map1 (((#:eval-id . 2) (#:duration . 71000.0) # # …) …))
> In cuirass/base.scm:
>     145:6  2 (register _)
> In ice-9/boot-9.scm:
>    268:13  1 (for-each #<procedure 3dc0750 at cuirass/base.scm:145:…> …)
> In cuirass/database.scm:
>     192:2  0 (db-add-build #<<sqlite-db> pointer: #<pointer 0x19d9e…> …)
> cuirass/database.scm:192:2: In procedure db-add-build:
> cuirass/database.scm:192:2: Throw to key `sqlite-error' with args `(#f 1555 "UNIQUE constraint failed: Builds.derivation, Builds.evaluation, Builds.output")'.
> --8<---------------cut here---------------end--------------->8---
>
> The directory /gnu/store/60671wa0i1fljll26fx7lxfl27fb27si-curl-7.55.0-doc exists.

After restarting Cuirass I got this error again:

--8<---------------cut here---------------start------------->8---
…
evaluate 'mips64el-linux-gnu.mpc-1.0.3.i686-linux': 104000.000 seconds
evaluate 'mips64el-linux-gnu.coreutils-8.27.i686-linux': -608068998.000 seconds
evaluate 'mips64el-linux-gnu.findutils-4.6.0.i686-linux': 141217000.000 seconds
evaluate 'mips64el-linux-gnu.diffutils-3.5.i686-linux': 119447000.000 seconds
evaluate 'mips64el-linux-gnu.patch-2.7.5.i686-linux': -853410998.000 seconds
/gnu/store/1bil0xyhpim3cfyaifdpb2jsjdni2hif-hplip-3.17.7
/gnu/store/n7mf8hk262rnlhrjqmacnkp1yn518ks4-cups-minimal-2.2.1
/gnu/store/lvfymniwbz33an5a2hakf4b1c57lrdwr-cups-filters-1.13.1
/gnu/store/60671wa0i1fljll26fx7lxfl27fb27si-curl-7.55.0-doc /gnu/store/nmfwf4fkvb4mfyi7m5sn1daklkjsz9mn-curl-7.55.0
/gnu/store/53vb094sihb819hk124qvfjq8vz78252-curl-7.53.0-doc /gnu/store/9ihxpf7al0znb19lx0bk6ymjp6nxhn9y-curl-7.53.0
Database error with INSERT INTO Builds (derivation, evaluation, log, output)  VALUES ('~A', '~A', '~A', '~A'); and (/gnu/store/zg0zpndricjwwbjv5087zw9hmdcd708y-curl-7.55.0.drv 3 #f /gnu/store/60671wa0i1fljll26fx7lxfl27fb27si-curl-7.55.0-doc)
In ice-9/boot-9.scm:
   230:29 19 (map1 (((#:eval-id . 3) (#:duration . 76000.0) # # …) …))
   230:29 18 (map1 (((#:eval-id . 3) (#:duration . 110000.0) # # …) …))
   230:29 17 (map1 (((#:eval-id . 3) (#:duration . 115000.0) # # …) …))
   230:29 16 (map1 (((#:eval-id . 3) (#:duration . 82000.0) # # …) …))
   230:29 15 (map1 (((#:eval-id . 3) (#:duration . 98000.0) # # …) …))
   230:29 14 (map1 (((#:eval-id . 3) (#:duration . 97000.0) # # …) …))
   230:29 13 (map1 (((#:eval-id . 3) (#:duration . 90000.0) # # …) …))
   230:29 12 (map1 (((#:eval-id . 3) (#:duration . 75000.0) # # …) …))
   230:29 11 (map1 (((#:eval-id . 3) (#:duration . 86000.0) # # …) …))
   230:29 10 (map1 (((#:eval-id . 3) (#:duration . 87000.0) # # …) …))
   230:29  9 (map1 (((#:eval-id . 3) (#:duration . 93000.0) # # …) …))
   230:29  8 (map1 (((#:eval-id . 3) (#:duration . 173000.0) # # …) …))
   230:29  7 (map1 (((#:eval-id . 3) (#:duration . 88000.0) # # …) …))
   230:29  6 (map1 (((#:eval-id . 3) (#:duration . 118000.0) # # …) …))
   230:29  5 (map1 (((#:eval-id . 3) (#:duration . 94000.0) # # …) …))
   230:29  4 (map1 (((#:eval-id . 3) (#:duration . 85000.0) # # …) …))
   230:17  3 (map1 (((#:eval-id . 3) (#:duration . 75000.0) # # …) …))
In cuirass/base.scm:
    145:6  2 (register _)
In ice-9/boot-9.scm:
   268:13  1 (for-each #<procedure 8d1ae10 at cuirass/base.scm:145:…> …)
In cuirass/database.scm:
    192:2  0 (db-add-build #<<sqlite-db> pointer: #<pointer 0x24cde…> …)
cuirass/database.scm:192:2: In procedure db-add-build:
cuirass/database.scm:192:2: Throw to key `sqlite-error' with args `(#f 1555 "UNIQUE constraint failed: Builds.derivation, Builds.evaluation, Builds.output")'.
--8<---------------cut here---------------end--------------->8---

Note that this is the same derivation and the same output as before.
Also note that I started with a fresh database before either of these
errors.  I did not remove the database after restarting Cuirass, though.

-- 
Ricardo

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