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

Build failures blocking testing



I've been looking through build failures trying to unblock GHC 7.6 from
testing, and have fixed up various problems affecting the BSDs and the
like.  Figuring out which ones are relevant across so many packages can
be a bit of a chore, so I thought I'd share my results for what's left.
I *believe* this is a complete list of currently-known build failures
(so not counting RC bugs, dependencies on packages outside the DHG's
remit, already-pending removals, and things still in the build queue)
blocking migration:

  * There are several build failures on s390x, generally presenting as a
    hung build terminated after a timeout, such as ghc itself [1].
    These started when packages started building with ghc 7.6 as a
    build-dependency rather than 7.4.  This is quite easy to reproduce
    on the porter box (zelenka), and it looks as though the runtime
    occasionally deadlocks when a subprocess exits; the strace looks
    like this:

      7523  exit_group(0)                     = ?
      6680  <... futex resumed> )             = ? ERESTARTSYS (To be restarted)
      6680  --- SIGCHLD (Child exited) @ 0 (0) ---
      6680  futex(0x84fa86ac, FUTEX_WAIT_PRIVATE, 1143, NULL) = ? ERESTARTSYS (To be restarted)
      6680  --- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
      6680  sigreturn()                       = ? (mask now [])
      6680  futex(0x84fa86ac, FUTEX_WAIT_PRIVATE, 1143, NULL) = ? ERESTARTSYS (To be restarted)
      6680  --- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
      6680  sigreturn()                       = ? (mask now [])
      6680  futex(0x84fa86ac, FUTEX_WAIT_PRIVATE, 1143, NULL) = ? ERESTARTSYS (To be restarted)
      [repeats forever]

    ghc spawns enough subprocesses (gcc etc.) that it's essentially
    bound to hit this sooner or later.  I suspect perhaps a lack of
    signal-safety somewhere - at an extremely wild guess, perhaps the
    type of an important variable written in a signal handler happens to
    exceed the size of sig_atomic_t on s390x and not elsewhere - but I
    haven't yet been able to track this down in the time available to
    me.  It doesn't help that the nature of the bug is such that I can't
    easily build any changes to ghc (and indeed even if we can fix this
    bug we'll probably need to rebootstrap manually with 7.4), although
    I'll try to build something in a wheezy chroot.

    The hashtables build failure [2] may be the same; I'm not sure.

    Perhaps somebody more fluent in Haskell than I could come up with a
    test case that exercises this and is somewhat simpler than "build
    ghc".  If my analysis is at all close to the mark, then something
    that sits in a loop forking and reaping a trivial child process on
    each iteration should be enough to reproduce this.

  * hakyll requires QuickCheck < 2.6 for its test suite.

  * hxt-relaxng fails to build on mipsel [3] and s390 [4], with what
    looks like an out-of-memory failure.  There are no
    reverse-dependencies; remove?

  * lens fails to build on kfreebsd-i386 [5]; I filed an upstream bug
    [6].  Should I just temporarily disable the tests on that
    architecture along with hurd-i386 where it also fails, or perhaps
    just disable that one test on all architectures since it's clearly
    unreliable?  

  * openpgp-asciiarmor hits an ICE on mipsel [7].  Removal would take
    out hopenpgp as well but is otherwise not too horrible.  However,
    since this succeeds on the porter box (with a slightly newer version
    of GCC), I'm going to ask for a give-back first.

  * helium is broken across the board, and needs porting to the new
    exception model [8].

For the sake of all our sanity we should try to get these sorted out as
soon as possible, since we'll have to wait ten days after the last fix
without uploading anything Haskell-related.

[1] https://buildd.debian.org/status/fetch.php?pkg=ghc&arch=s390x&ver=7.6.3-3&stamp=1371069456
[2] https://buildd.debian.org/status/fetch.php?pkg=haskell-hashtables&arch=s390x&ver=1.0.1.8-2&stamp=1370089171
[3] https://buildd.debian.org/status/fetch.php?pkg=haskell-hxt-relaxng&arch=mipsel&ver=9.1.4-4&stamp=1370189936
[4] https://buildd.debian.org/status/fetch.php?pkg=haskell-hxt-relaxng&arch=s390&ver=9.1.4-4&stamp=1370387606
[5] https://buildd.debian.org/status/fetch.php?pkg=haskell-lens&arch=kfreebsd-i386&ver=3.9.0.2-2&stamp=1369593382
[6] https://github.com/ekmett/lens/issues/310
[7] https://buildd.debian.org/status/fetch.php?pkg=haskell-openpgp-asciiarmor&arch=mipsel&ver=0.1-3&stamp=1370103284
[8] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=710189

Thanks,

-- 
Colin Watson                                       [cjwatson@debian.org]


Reply to: