[GHC] #15287: T11627[ab] fail on some Darwin environments

GHC ghc-devs at haskell.org
Mon Jun 18 20:52:08 UTC 2018


#15287: T11627[ab] fail on some Darwin environments
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.6.1
       Component:  Compiler          |              Version:  8.4.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 Another run, this this with `DEBUG_RETAINER` set:
 {{{
 pop() to the previous stack.
 stackSize = 0
 retainClosure() ends: oldStackTop = 0x200000, stackTop = 0x200000
 retainClosure() called: c0 = 0x1345c0, cp0 = 0x1345c0, r0 = 0x13f7e0
 push(): stackTop = 0x200000, currentStackBoundary = 0x200000
 stackSize = 1
 push(): stackTop = 0x1fffd8, currentStackBoundary = 0x200000
 stackSize = 2
 pop(): stackTop = 0x1fffb0, currentStackBoundary = 0x200000
         popOff(): stackTop = 0x1fffb0, currentStackBoundary = 0x200000
 stackSize = 1
         popOff(): stackTop = 0x1fffd8, currentStackBoundary = 0x200000
 pop() to the previous stack.
 stackSize = 0
 retainClosure() ends: oldStackTop = 0x200000, stackTop = 0x200000
 retainClosure() called: c0 = 0x133ee0, cp0 = 0x133ee0, r0 = 0x13f7e0
 push(): stackTop = 0x200000, currentStackBoundary = 0x200000
 stackSize = 1
 push(): stackTop = 0x1fffd8, currentStackBoundary = 0x200000
 stackSize = 2
 pop(): stackTop = 0x1fffb0, currentStackBoundary = 0x200000
 pop(): stackTop = 0x1fffb0, currentStackBoundary = 0x200000
         popOff(): stackTop = 0x1fffb0, currentStackBoundary = 0x200000
 stackSize = 1
         popOff(): stackTop = 0x1fffd8, currentStackBoundary = 0x200000
 pop() to the previous stack.
 stackSize = 0
 retainClosure() ends: oldStackTop = 0x200000, stackTop = 0x200000
 retainClosure() called: c0 = 0x134a80, cp0 = 0x134a80, r0 = 0x13f7e0
 pop(): stackTop = 0x200000, currentStackBoundary = 0x200000
 retainClosure() ends: oldStackTop = 0x200000, stackTop = 0x200000
 retainClosure() called: c0 = 0x12f550, cp0 = 0x12f550, r0 = 0x12dab0
 push(): stackTop = 0x200000, currentStackBoundary = 0x200000
 T11627a was compiled with optimization - stepping may behave oddly;
 variables may not be available.
 Process 36053 stopped
 * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.3
     frame #0: 0x00000001000d5cff T11627a`retainClosure [inlined]
 isRetainer(c=<unavailable>) at RetainerProfile.c:1057 [opt]
    1054     case IND:
    1055     case INVALID_OBJECT:
    1056     default:
 -> 1057         barf("Invalid object in isRetainer(): %p, type=%d", c,
 get_itbl(c)->type);
    1058         return false;
    1059     }
    1060 }
 Target 0: (T11627a) stopped.
 (lldb) bt
 * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.3
   * frame #0: 0x00000001000d5cff T11627a`retainClosure [inlined]
 isRetainer(c=<unavailable>) at RetainerProfile.c:1057 [opt]
     frame #1: 0x00000001000d5cff T11627a`retainClosure(c0=<unavailable>,
 cp0=0x000000010012f550, r0=0x000000010012dab0) at RetainerProfile.c:1517
 [opt]
     frame #2: 0x00000042001fcec8
 (lldb)
 }}}
 Given that the backtrace is truncated it looks rather like someone has
 smashed the C callstack.

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


More information about the ghc-tickets mailing list