
print ((StgClosure *) 0x4200345e70)->header.prof.ccs $30 = (CostCentreStack *) 0xb44390 print *((StgClosure *) 0x4200345e70)->header.prof.ccs $31 = { ccsID = 241, cc = 0xb44350,
#15508: concprog001 fails with various errors
-------------------------------------+-------------------------------------
Reporter: osa1 | Owner: osa1
Type: bug | Status: new
Priority: highest | Milestone: 8.8.1
Component: Compiler | Version: 8.5
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: Runtime crash | Test Case:
Blocked By: | Blocking:
Related Tickets: #15571 | Differential Rev(s): Phab:D5051
Wiki Page: | (reverted), Phab:D5165, Phab:D5178
-------------------------------------+-------------------------------------
Changes (by osa1):
* cc: simonmar (added)
Comment:
I came across something interesting. While digging deeper I found that
this is
where we assign a location of heap (instead of location of the arena where
we
allocate cost centre stacks) to a closure's CCS field:
{{{
#0 0x0000000000a15794 in raiseAsync (cap=0xd35700 <MainCapability>,
tso=0x420320f000, exception=0xb570c0, stop_at_atomically=false,
stop_here=0x0) at rts/RaiseAsync.c:873
#1 0x0000000000a14aa6 in throwToMsg (cap=0xd35700 <MainCapability>,
msg=0x42000be730) at rts/RaiseAsync.c:275
#2 0x0000000000a148f0 in throwTo (cap=0xd35700 <MainCapability>,
source=0x4205b6f728, target=0x420320f000, exception=0xb570c0) at
rts/RaiseAsync.c:213
#3 0x0000000000a3c323 in stg_killThreadzh ()
#4 0x0000000000000000 in ?? ()
}}}
The closure (an `AP_STACK`) previously has this cost centre stack:
{{{
prevStack = 0xd2df00