[GHC] #12537: Parallel cabal builds Segmentation Fault on PowerPC 64-bit

GHC ghc-devs at haskell.org
Wed Jan 18 12:44:33 UTC 2017


#12537: Parallel cabal builds Segmentation Fault on PowerPC 64-bit
-------------------------------------+-------------------------------------
        Reporter:  michelmno         |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:  powerpc64
 Type of failure:  Incorrect result  |            Test Case:
  at runtime                         |
      Blocked By:  12469             |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by michelmno):

 The trials I made in [comment:7 comment 7] was with ghc 8.0.1 with
 following patches (as per spec file in OBS
 https://build.opensuse.org/package/view_file/devel:languages:haskell/ghc/ghc.spec?expand=1
 {{{
 # PATCH-FIX-UPSTREAM D2495.patch peter.trommler at ohm-hochschule.de -- Add
 missing memory barrier on mutable variables. See
 https://ghc.haskell.org/trac/ghc/ticket/12469 for details. Backport of
 upstream fix for ghc 8.0.2.
 Patch27:        D2495.patch
 # PATCH-FIX_UPSTREAM 0001-StgCmmPrim-Add-missing-write-barrier.patch
 peter.trommler at ohm-hochschule.de -- Add missing write barrier on mutable
 arrays.
 Patch28:        0001-StgCmmPrim-Add-missing-write-barrier.patch
 # PATCH-FIX_UPSTREAM ghc-no-madv-free.patch psimons at suse.com -- Fix
 "unable to decommit memory: Invalid argument" errors. See
 https://ghc.haskell.org/trac/ghc/ticket/12495 for details.
 Patch29:        ghc-no-madv-free.patch
 # PATCH-FIX-UPSTREAM 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch
 peter.trommler at ohm-hochschule.de -- Fix PPC codegen: Fixes ghc-
 zeromq4-haskell build on 64-bit PowerPCs
 Patch30:        0001-PPC-CodeGen-fix-lwa-instruction-generation.patch
 }}}

 The core dumps as reported by systemd-coredump are not always at same
 address (as per journalctl output)
 {{{
 Jan 17 15:27:42 abanc kernel: ghc_worker[12624]: unhandled signal 11 at
 38425a003c4c02f4 nip 38425a003c4c02f4 lr 00003fff8da98774 code 30001
 Jan 17 15:28:01 abanc systemd-coredump[12677]: Process 12485 (Setup) of
 user 1000 dumped core.
 Jan 17 15:31:25 abanc kernel: ghc_worker[12822]: unhandled signal 11 at
 0000000000000000 nip 00003fff8430b4f4 lr 00003fff84308774 code 30001
 Jan 17 15:31:37 abanc systemd-coredump[12828]: Process 12793 (Setup) of
 user 1000 dumped core.
 Jan 17 15:32:34 abanc systemd-coredump[12827]: Process 12795 (ghc) of user
 1000 dumped core.
 Jan 17 15:34:18 abanc systemd-coredump[12676]: Process 12487 (ghc) of user
 1000 dumped core.
 Jan 17 15:42:23 abanc kernel: ghc_worker[14939]: unhandled signal 11 at
 0000000000000000 nip 00003fff8122b4f4 lr 00003fff81228774 code 30001
 Jan 17 15:42:41 abanc systemd-coredump[15017]: Process 14820 (Setup) of
 user 1000 dumped core.
 }}}

 Trying to analyse one of the core file with gdb refer to SIGSEGV in
 stg_ap_0_fast as per extract below.
 I do not know how to continue investigation from there.

 {{{
 + echo 'r  -B/usr/lib64/ghc-8.0.1 '
 + exec gdb -c
 /var/lib/systemd/coredump/core.ghc.1000.b44d99385b4c45eb840722189ffdf026.14822.1484667743000000
 -x /tmp/gdbparms /usr/lib64/ghc-8.0.1/bin/ghc
 GNU gdb (GDB; openSUSE Tumbleweed) 7.11.1
 ...
 Reading symbols from /usr/lib64/ghc-8.0.1/bin/ghc...Reading symbols from
 /usr/lib/debug/usr/lib64/ghc-8.0.1/bin/ghc.debug...done.
 done.
 [New LWP 14939]
 [New LWP 14861]
 [New LWP 14951]
 ...
 [New LWP 14932]
 [New LWP 14927]
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib64/libthread_db.so.1".
 Core was generated by `/usr/lib64/ghc-8.0.1/bin/ghc -B/usr/lib64/ghc-8.0.1
 --make -fbuilding-cabal-pac'.
 Program terminated with signal SIGSEGV, Segmentation fault.
 #0  0x00003fff8122b4f4 in stg_ap_0_fast () from
 /usr/lib64/ghc-8.0.1/bin/../rts/libHSrts_thr-ghc8.0.1.so
 [Current thread is 1 (Thread 0x3efdf27ff1a0 (LWP 14939))]
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib64/libthread_db.so.1".
 [New Thread 0x3fffad6df1a0 (LWP 19906)]
 [New Thread 0x3fffacedf1a0 (LWP 19907)]
 [New Thread 0x3fffa7fff1a0 (LWP 19908)]
 ghc: no input files
 Usage: For basic information, try the `--help' option.
 [Thread 0x3fffa7fff1a0 (LWP 19908) exited]
 [Thread 0x3fffacedf1a0 (LWP 19907) exited]
 [Thread 0x3fffad6df1a0 (LWP 19906) exited]
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12537#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list