[GHC] #14880: GHC panic: updateRole
GHC
ghc-devs at haskell.org
Wed Jul 11 13:00:59 UTC 2018
#14880: GHC panic: updateRole
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: goldfire
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler (Type | Version: 8.2.2
checker) |
Resolution: | Keywords: TypeInType
Operating System: Unknown/Multiple | Architecture:
Type of failure: Compile-time | Unknown/Multiple
crash or panic | Test Case:
Blocked By: | Blocking:
Related Tickets: #15076 | Differential Rev(s): Phab:D4769
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by tdammers):
OK, so I tried to validate, but I'm getting core lint errors while
compiling stage2:
{{{
"inplace/bin/ghc-stage1" -this-unit-id rts -shared -dynamic -dynload
deploy -no-auto-link-packages -Lrts/dist/build -lffi -optl-Wl,-rpath
-optl-Wl,'$ORIGIN' -optl-Wl,-zorigin `cat rts/dist/libs.depend`
rts/dist/build/Arena.l_dyn_o rts/dist/build/Stable.l_dyn_o
rts/dist/build/Linker.l_dyn_o rts/dist/build/RtsFlags.l_dyn_o
rts/dist/build/Sparks.l_dyn_o rts/dist/build/Profiling.l_dyn_o
rts/dist/build/RtsStartup.l_dyn_o rts/dist/build/FileLock.l_dyn_o
rts/dist/build/StgPrimFloat.l_dyn_o rts/dist/build/Pool.l_dyn_o
rts/dist/build/StaticPtrTable.l_dyn_o rts/dist/build/Disassembler.l_dyn_o
rts/dist/build/TopHandler.l_dyn_o rts/dist/build/WSDeque.l_dyn_o
rts/dist/build/RetainerSet.l_dyn_o rts/dist/build/ProfilerReport.l_dyn_o
rts/dist/build/Schedule.l_dyn_o rts/dist/build/RtsAPI.l_dyn_o
rts/dist/build/Adjustor.l_dyn_o rts/dist/build/Globals.l_dyn_o
rts/dist/build/Capability.l_dyn_o rts/dist/build/xxhash.l_dyn_o
rts/dist/build/Messages.l_dyn_o rts/dist/build/Interpreter.l_dyn_o
rts/dist/build/Hpc.l_dyn_o rts/dist/build/Libdw.l_dyn_o
rts/dist/build/RetainerProfile.l_dyn_o rts/dist/build/ClosureFlags.l_dyn_o
rts/dist/build/LdvProfile.l_dyn_o rts/dist/build/StgCRun.l_dyn_o
rts/dist/build/Task.l_dyn_o rts/dist/build/ProfilerReportJson.l_dyn_o
rts/dist/build/RtsUtils.l_dyn_o rts/dist/build/Weak.l_dyn_o
rts/dist/build/Stats.l_dyn_o rts/dist/build/Trace.l_dyn_o
rts/dist/build/Hash.l_dyn_o rts/dist/build/RaiseAsync.l_dyn_o
rts/dist/build/ProfHeap.l_dyn_o rts/dist/build/RtsMessages.l_dyn_o
rts/dist/build/RtsSymbolInfo.l_dyn_o rts/dist/build/RtsDllMain.l_dyn_o
rts/dist/build/Timer.l_dyn_o rts/dist/build/HsFFI.l_dyn_o
rts/dist/build/OldARMAtomic.l_dyn_o rts/dist/build/STM.l_dyn_o
rts/dist/build/ThreadLabels.l_dyn_o rts/dist/build/Proftimer.l_dyn_o
rts/dist/build/RtsSymbols.l_dyn_o rts/dist/build/PathUtils.l_dyn_o
rts/dist/build/Threads.l_dyn_o rts/dist/build/RtsMain.l_dyn_o
rts/dist/build/CheckUnload.l_dyn_o rts/dist/build/Inlines.l_dyn_o
rts/dist/build/Ticky.l_dyn_o rts/dist/build/LibdwPool.l_dyn_o
rts/dist/build/ThreadPaused.l_dyn_o rts/dist/build/Printer.l_dyn_o
rts/dist/build/fs.l_dyn_o rts/dist/build/hooks/OutOfHeap.l_dyn_o
rts/dist/build/hooks/MallocFail.l_dyn_o
rts/dist/build/hooks/FlagDefaults.l_dyn_o
rts/dist/build/hooks/OnExit.l_dyn_o
rts/dist/build/hooks/LongGCSync.l_dyn_o
rts/dist/build/hooks/StackOverflow.l_dyn_o
rts/dist/build/sm/MBlock.l_dyn_o rts/dist/build/sm/Scav.l_dyn_o
rts/dist/build/sm/GCUtils.l_dyn_o rts/dist/build/sm/CNF.l_dyn_o
rts/dist/build/sm/Compact.l_dyn_o rts/dist/build/sm/Sweep.l_dyn_o
rts/dist/build/sm/GCAux.l_dyn_o rts/dist/build/sm/MarkWeak.l_dyn_o
rts/dist/build/sm/BlockAlloc.l_dyn_o rts/dist/build/sm/Evac_thr.l_dyn_o
rts/dist/build/sm/GC.l_dyn_o rts/dist/build/sm/Sanity.l_dyn_o
rts/dist/build/sm/Evac.l_dyn_o rts/dist/build/sm/Storage.l_dyn_o
rts/dist/build/sm/Scav_thr.l_dyn_o
rts/dist/build/eventlog/EventLogWriter.l_dyn_o
rts/dist/build/eventlog/EventLog.l_dyn_o
rts/dist/build/linker/elf_reloc_aarch64.l_dyn_o
rts/dist/build/linker/MachO.l_dyn_o rts/dist/build/linker/elf_plt.l_dyn_o
rts/dist/build/linker/elf_plt_aarch64.l_dyn_o
rts/dist/build/linker/M32Alloc.l_dyn_o
rts/dist/build/linker/elf_got.l_dyn_o rts/dist/build/linker/Elf.l_dyn_o
rts/dist/build/linker/CacheFlush.l_dyn_o
rts/dist/build/linker/SymbolExtras.l_dyn_o
rts/dist/build/linker/elf_plt_arm.l_dyn_o
rts/dist/build/linker/LoadArchive.l_dyn_o
rts/dist/build/linker/PEi386.l_dyn_o
rts/dist/build/linker/elf_reloc.l_dyn_o
rts/dist/build/linker/elf_util.l_dyn_o rts/dist/build/posix/OSMem.l_dyn_o
rts/dist/build/posix/GetTime.l_dyn_o
rts/dist/build/posix/OSThreads.l_dyn_o rts/dist/build/posix/Itimer.l_dyn_o
rts/dist/build/posix/TTY.l_dyn_o rts/dist/build/posix/Signals.l_dyn_o
rts/dist/build/posix/Select.l_dyn_o rts/dist/build/posix/GetEnv.l_dyn_o
rts/dist/build/StgStartup.l_dyn_o rts/dist/build/PrimOps.l_dyn_o
rts/dist/build/HeapStackCheck.l_dyn_o rts/dist/build/Updates.l_dyn_o
rts/dist/build/Exception.l_dyn_o rts/dist/build/StgMiscClosures.l_dyn_o
rts/dist/build/Apply.l_dyn_o rts/dist/build/Compact.l_dyn_o
rts/dist/build/StgStdThunks.l_dyn_o rts/dist/build/AutoApply.l_dyn_o
-fPIC -dynamic -eventlog -O0 -H64m -Wall -fllvm-fill-undef-with-garbage
-Werror -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header
-Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS
-DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -i -irts
-irts/dist/build -Irts/dist/build -irts/dist/build/./autogen
-Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-
monad-instances -o rts/dist/build/libHSrts_l-ghc8.5.20180710.so
"rm" -f rts/dist/build/libHSrts_thr_l-ghc8.5.20180710.so
"inplace/bin/ghc-stage1" -this-unit-id rts -shared -dynamic -dynload
deploy -no-auto-link-packages -Lrts/dist/build -lffi -optl-Wl,-rpath
-optl-Wl,'$ORIGIN' -optl-Wl,-zorigin `cat rts/dist/libs.depend`
rts/dist/build/Arena.thr_l_dyn_o rts/dist/build/Stable.thr_l_dyn_o
rts/dist/build/Linker.thr_l_dyn_o rts/dist/build/RtsFlags.thr_l_dyn_o
rts/dist/build/Sparks.thr_l_dyn_o rts/dist/build/Profiling.thr_l_dyn_o
rts/dist/build/RtsStartup.thr_l_dyn_o rts/dist/build/FileLock.thr_l_dyn_o
rts/dist/build/StgPrimFloat.thr_l_dyn_o rts/dist/build/Pool.thr_l_dyn_o
rts/dist/build/StaticPtrTable.thr_l_dyn_o
rts/dist/build/Disassembler.thr_l_dyn_o
rts/dist/build/TopHandler.thr_l_dyn_o rts/dist/build/WSDeque.thr_l_dyn_o
rts/dist/build/RetainerSet.thr_l_dyn_o
rts/dist/build/ProfilerReport.thr_l_dyn_o
rts/dist/build/Schedule.thr_l_dyn_o rts/dist/build/RtsAPI.thr_l_dyn_o
rts/dist/build/Adjustor.thr_l_dyn_o rts/dist/build/Globals.thr_l_dyn_o
rts/dist/build/Capability.thr_l_dyn_o rts/dist/build/xxhash.thr_l_dyn_o
rts/dist/build/Messages.thr_l_dyn_o rts/dist/build/Interpreter.thr_l_dyn_o
rts/dist/build/Hpc.thr_l_dyn_o rts/dist/build/Libdw.thr_l_dyn_o
rts/dist/build/RetainerProfile.thr_l_dyn_o
rts/dist/build/ClosureFlags.thr_l_dyn_o
rts/dist/build/LdvProfile.thr_l_dyn_o rts/dist/build/StgCRun.thr_l_dyn_o
rts/dist/build/Task.thr_l_dyn_o
rts/dist/build/ProfilerReportJson.thr_l_dyn_o
rts/dist/build/RtsUtils.thr_l_dyn_o rts/dist/build/Weak.thr_l_dyn_o
rts/dist/build/Stats.thr_l_dyn_o rts/dist/build/Trace.thr_l_dyn_o
rts/dist/build/Hash.thr_l_dyn_o rts/dist/build/RaiseAsync.thr_l_dyn_o
rts/dist/build/ProfHeap.thr_l_dyn_o rts/dist/build/RtsMessages.thr_l_dyn_o
rts/dist/build/RtsSymbolInfo.thr_l_dyn_o
rts/dist/build/RtsDllMain.thr_l_dyn_o rts/dist/build/Timer.thr_l_dyn_o
rts/dist/build/HsFFI.thr_l_dyn_o rts/dist/build/OldARMAtomic.thr_l_dyn_o
rts/dist/build/STM.thr_l_dyn_o rts/dist/build/ThreadLabels.thr_l_dyn_o
rts/dist/build/Proftimer.thr_l_dyn_o rts/dist/build/RtsSymbols.thr_l_dyn_o
rts/dist/build/PathUtils.thr_l_dyn_o rts/dist/build/Threads.thr_l_dyn_o
rts/dist/build/RtsMain.thr_l_dyn_o rts/dist/build/CheckUnload.thr_l_dyn_o
rts/dist/build/Inlines.thr_l_dyn_o rts/dist/build/Ticky.thr_l_dyn_o
rts/dist/build/LibdwPool.thr_l_dyn_o
rts/dist/build/ThreadPaused.thr_l_dyn_o rts/dist/build/Printer.thr_l_dyn_o
rts/dist/build/fs.thr_l_dyn_o rts/dist/build/hooks/OutOfHeap.thr_l_dyn_o
rts/dist/build/hooks/MallocFail.thr_l_dyn_o
rts/dist/build/hooks/FlagDefaults.thr_l_dyn_o
rts/dist/build/hooks/OnExit.thr_l_dyn_o
rts/dist/build/hooks/LongGCSync.thr_l_dyn_o
rts/dist/build/hooks/StackOverflow.thr_l_dyn_o
rts/dist/build/sm/MBlock.thr_l_dyn_o rts/dist/build/sm/Scav.thr_l_dyn_o
rts/dist/build/sm/GCUtils.thr_l_dyn_o rts/dist/build/sm/CNF.thr_l_dyn_o
rts/dist/build/sm/Compact.thr_l_dyn_o rts/dist/build/sm/Sweep.thr_l_dyn_o
rts/dist/build/sm/GCAux.thr_l_dyn_o rts/dist/build/sm/MarkWeak.thr_l_dyn_o
rts/dist/build/sm/BlockAlloc.thr_l_dyn_o
rts/dist/build/sm/Evac_thr.thr_l_dyn_o rts/dist/build/sm/GC.thr_l_dyn_o
rts/dist/build/sm/Sanity.thr_l_dyn_o rts/dist/build/sm/Evac.thr_l_dyn_o
rts/dist/build/sm/Storage.thr_l_dyn_o
rts/dist/build/sm/Scav_thr.thr_l_dyn_o
rts/dist/build/eventlog/EventLogWriter.thr_l_dyn_o
rts/dist/build/eventlog/EventLog.thr_l_dyn_o
rts/dist/build/linker/elf_reloc_aarch64.thr_l_dyn_o
rts/dist/build/linker/MachO.thr_l_dyn_o
rts/dist/build/linker/elf_plt.thr_l_dyn_o
rts/dist/build/linker/elf_plt_aarch64.thr_l_dyn_o
rts/dist/build/linker/M32Alloc.thr_l_dyn_o
rts/dist/build/linker/elf_got.thr_l_dyn_o
rts/dist/build/linker/Elf.thr_l_dyn_o
rts/dist/build/linker/CacheFlush.thr_l_dyn_o
rts/dist/build/linker/SymbolExtras.thr_l_dyn_o
rts/dist/build/linker/elf_plt_arm.thr_l_dyn_o
rts/dist/build/linker/LoadArchive.thr_l_dyn_o
rts/dist/build/linker/PEi386.thr_l_dyn_o
rts/dist/build/linker/elf_reloc.thr_l_dyn_o
rts/dist/build/linker/elf_util.thr_l_dyn_o
rts/dist/build/posix/OSMem.thr_l_dyn_o
rts/dist/build/posix/GetTime.thr_l_dyn_o
rts/dist/build/posix/OSThreads.thr_l_dyn_o
rts/dist/build/posix/Itimer.thr_l_dyn_o
rts/dist/build/posix/TTY.thr_l_dyn_o
rts/dist/build/posix/Signals.thr_l_dyn_o
rts/dist/build/posix/Select.thr_l_dyn_o
rts/dist/build/posix/GetEnv.thr_l_dyn_o
rts/dist/build/StgStartup.thr_l_dyn_o rts/dist/build/PrimOps.thr_l_dyn_o
rts/dist/build/HeapStackCheck.thr_l_dyn_o
rts/dist/build/Updates.thr_l_dyn_o rts/dist/build/Exception.thr_l_dyn_o
rts/dist/build/StgMiscClosures.thr_l_dyn_o
rts/dist/build/Apply.thr_l_dyn_o rts/dist/build/Compact.thr_l_dyn_o
rts/dist/build/StgStdThunks.thr_l_dyn_o
rts/dist/build/AutoApply.thr_l_dyn_o -fPIC -dynamic -optc-DTHREADED_RTS
-eventlog -O0 -H64m -Wall -fllvm-fill-undef-with-garbage -Werror
-Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header
-Iincludes/dist-ghcconstants/header -Irts -Irts/dist/build -DCOMPILING_RTS
-DFS_NAMESPACE=rts -this-unit-id rts -dcmm-lint -i -irts
-irts/dist/build -Irts/dist/build -irts/dist/build/./autogen
-Irts/dist/build/./autogen -O2 -Wcpp-undef -Wnoncanonical-
monad-instances -o rts/dist/build/libHSrts_thr_l-ghc8.5.20180710.so
"inplace/bin/ghc-stage1" -hisuf hi -osuf o -hcsuf hc -static -O0 -H64m
-Wall -fllvm-fill-undef-with-garbage -Werror -this-unit-id ghc-
prim-0.5.2.0 -hide-all-packages -i -ilibraries/ghc-prim/. -ilibraries/ghc-
prim/dist-install/build -Ilibraries/ghc-prim/dist-install/build
-ilibraries/ghc-prim/dist-install/build/./autogen -Ilibraries/ghc-prim
/dist-install/build/./autogen -Ilibraries/ghc-prim/. -optP-include
-optPlibraries/ghc-prim/dist-install/build/./autogen/cabal_macros.h
-package-id rts -this-unit-id ghc-prim -XHaskell2010 -O -dcore-lint -dno-
debug-output -no-user-package-db -rtsopts -Wno-trustworthy-safe -Wno-
deprecated-flags -Wnoncanonical-monad-instances -odir libraries/ghc-
prim/dist-install/build -hidir libraries/ghc-prim/dist-install/build
-stubdir libraries/ghc-prim/dist-install/build -dynamic-too -c libraries
/ghc-prim/./GHC/CString.hs -o libraries/ghc-prim/dist-
install/build/GHC/CString.o -dyno libraries/ghc-prim/dist-
install/build/GHC/CString.dyn_o
"inplace/bin/ghc-stage1" -hisuf hi -osuf o -hcsuf hc -static -O0 -H64m
-Wall -fllvm-fill-undef-with-garbage -Werror -this-unit-id ghc-
prim-0.5.2.0 -hide-all-packages -i -ilibraries/ghc-prim/. -ilibraries/ghc-
prim/dist-install/build -Ilibraries/ghc-prim/dist-install/build
-ilibraries/ghc-prim/dist-install/build/./autogen -Ilibraries/ghc-prim
/dist-install/build/./autogen -Ilibraries/ghc-prim/. -optP-include
-optPlibraries/ghc-prim/dist-install/build/./autogen/cabal_macros.h
-package-id rts -this-unit-id ghc-prim -XHaskell2010 -O -dcore-lint -dno-
debug-output -no-user-package-db -rtsopts -Wno-trustworthy-safe -Wno-
deprecated-flags -Wnoncanonical-monad-instances -odir libraries/ghc-
prim/dist-install/build -hidir libraries/ghc-prim/dist-install/build
-stubdir libraries/ghc-prim/dist-install/build -dynamic-too -c libraries
/ghc-prim/./GHC/IntWord64.hs -o libraries/ghc-prim/dist-
install/build/GHC/IntWord64.o -dyno libraries/ghc-prim/dist-
install/build/GHC/IntWord64.dyn_o
"inplace/bin/ghc-stage1" -hisuf hi -osuf o -hcsuf hc -static -O0 -H64m
-Wall -fllvm-fill-undef-with-garbage -Werror -this-unit-id
base-4.12.0.0 -hide-all-packages -i -ilibraries/base/. -ilibraries/base
/dist-install/build -Ilibraries/base/dist-install/build -ilibraries/base
/dist-install/build/./autogen -Ilibraries/base/dist-
install/build/./autogen -Ilibraries/base/include -Ilibraries/base/dist-
install/build/include -optP-DOPTIMISE_INTEGER_GCD_LCM -optP-include
-optPlibraries/base/dist-install/build/./autogen/cabal_macros.h -package-
id ghc-prim-0.5.2.0 -package-id integer-gmp-1.0.2.0 -package-id rts -this-
unit-id base -XHaskell2010 -O -dcore-lint -dno-debug-output -no-user-
package-db -rtsopts -Wno-trustworthy-safe -Wno-deprecated-flags
-Wnoncanonical-monad-instances -odir libraries/base/dist-install/build
-hidir libraries/base/dist-install/build -stubdir libraries/base/dist-
install/build -dynamic-too -c libraries/base/./GHC/Base.hs-boot -o
libraries/base/dist-install/build/GHC/Base.o-boot -dyno libraries/base
/dist-install/build/GHC/Base.dyn_o-boot
"inplace/bin/ghc-stage1" -hisuf hi -osuf o -hcsuf hc -static -O0 -H64m
-Wall -fllvm-fill-undef-with-garbage -Werror -this-unit-id
base-4.12.0.0 -hide-all-packages -i -ilibraries/base/. -ilibraries/base
/dist-install/build -Ilibraries/base/dist-install/build -ilibraries/base
/dist-install/build/./autogen -Ilibraries/base/dist-
install/build/./autogen -Ilibraries/base/include -Ilibraries/base/dist-
install/build/include -optP-DOPTIMISE_INTEGER_GCD_LCM -optP-include
-optPlibraries/base/dist-install/build/./autogen/cabal_macros.h -package-
id ghc-prim-0.5.2.0 -package-id integer-gmp-1.0.2.0 -package-id rts -this-
unit-id base -XHaskell2010 -O -dcore-lint -dno-debug-output -no-user-
package-db -rtsopts -Wno-trustworthy-safe -Wno-deprecated-flags
-Wnoncanonical-monad-instances -odir libraries/base/dist-install/build
-hidir libraries/base/dist-install/build -stubdir libraries/base/dist-
install/build -dynamic-too -c libraries/base/./GHC/Real.hs-boot -o
libraries/base/dist-install/build/GHC/Real.o-boot -dyno libraries/base
/dist-install/build/GHC/Real.dyn_o-boot
*** Core Lint errors : in result of Simplifier ***
<no location info>: warning:
[RHS of $j_sCd :: [Char]]
Join point has invalid type: $j_sCd :: [Char]
*** Offending Program ***
unpackCString# [InlPrag=NOINLINE CONLIKE] :: Addr# -> [Char]
[LclIdX,
Arity=1,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [0] 102 0}]
unpackCString#
= \ (addr_atX :: Addr#) ->
letrec {
unpack_sBT [Occ=LoopBreaker] :: Int# -> [Char]
[LclId,
Arity=1,
Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [0] 62
40}]
unpack_sBT
= \ (nh_atZ :: Int#) ->
case indexCharOffAddr# addr_atX nh_atZ of ch_axY {
__DEFAULT -> : @ Char (C# ch_axY) (unpack_sBT (+# nh_atZ
1#));
'\NUL'# -> [] @ Char
}; } in
unpack_sBT 0#
----- snip -----
$trModule_sAS :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$trModule_sAS = TrNameS $trModule_sAR
$trModule :: Module
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$trModule = Module $trModule_sAQ $trModule_sAS
*** End of Offense ***
<no location info>: error:
Compilation had errors
libraries/ghc-prim/ghc.mk:4: recipe for target 'libraries/ghc-prim/dist-
install/build/GHC/CString.o' failed
make[1]: *** [libraries/ghc-prim/dist-install/build/GHC/CString.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:122: recipe for target 'all' failed
make: *** [all] Error 2
}}}
This is from running `validate` on `ec9638b222` - as far as I can tell,
this is about where the patch originally branched off of `master`; in any
case it applies cleanly, and `ec9638b222` itself validates without errors.
Since this error occurs while compiling stage2, my assumption is that the
patch changes GHC to produce incorrect output; the incorrect stage1
compiler then fails with a core lint error while compiling stage2.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14880#comment:22>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list