[GHC] #15696: Derived Ord instance for enumerations with more than 8 elements seems to be incorrect

GHC ghc-devs at haskell.org
Sat Oct 6 16:21:54 UTC 2018


#15696: Derived Ord instance for enumerations with more than 8 elements seems to be
incorrect
-------------------------------------+-------------------------------------
        Reporter:  mrkkrp            |                Owner:  (none)
            Type:  bug               |               Status:  patch
        Priority:  highest           |            Milestone:  8.6.2
       Component:  Compiler          |              Version:  8.6.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Incorrect result  |  Unknown/Multiple
  at runtime                         |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D5196,
       Wiki Page:                    |  Phab:D5201
-------------------------------------+-------------------------------------

Comment (by osa1):

 I did a little bit of debugging for the segfault problem. I'm wondering if
 I'm triggering some other bug, because the segfault is happening during
 GC:

 {{{
 >>> bt
 #0  evacuate1 (p=p at entry=0x420fe54720) at rts/sm/Evac.c:642
 #1  0x00007fdcea628c35 in scavenge_block1 (bd=0x420fe01500) at
 rts/sm/Scav.c:541
 #2  0x00007fdcea648f5f in scavenge_find_work () at rts/sm/Scav.c:2067
 #3  scavenge_loop1 () at rts/sm/Scav.c:2130
 #4  0x00007fdcea6502e2 in scavenge_until_all_done () at rts/sm/GC.c:1090
 #5  0x00007fdcea650c3f in GarbageCollect (collect_gen=collect_gen at entry=1,
 do_heap_census=do_heap_census at entry=false, gc_type=gc_type at entry=2,
 cap=cap at entry=0x7fdcea686ac0 <MainCapability>,
 idle_cap=idle_cap at entry=0x1f14dd0) at rts/sm/GC.c:421
 #6  0x00007fdcea635f17 in scheduleDoGC (pcap=pcap at entry=0x7ffdb2c2fea0,
 task=task at entry=0x1f109b0, force_major=force_major at entry=false) at
 rts/Schedule.c:1798
 #7  0x00007fdcea6368ec in schedule
 (initialCapability=initialCapability at entry=0x7fdcea686ac0
 <MainCapability>, task=task at entry=0x1f109b0) at
 rts/Schedule.c:546
 #8  0x00007fdcea637e41 in scheduleWaitThread (tso=0x4200006388,
 ret=ret at entry=0x0, pcap=pcap at entry=0x7ffdb2c2ff38) at rts/Schedule.c:2537
 #9  0x00007fdcea642a98 in rts_evalLazyIO (cap=cap at entry=0x7ffdb2c2ff38,
 p=p at entry=0x756150, ret=ret at entry=0x0) at rts/RtsAPI.c:530
 #10 0x00007fdcea6433ec in hs_main (argc=<optimized out>, argv=<optimized
 out>, main_closure=0x756150, rts_config=...) at rts/RtsMain.c:72
 #11 0x0000000000749560 in main ()
 }}}

 The info table pointer is wrong:

 {{{
 >>> print info
 $1 = (const StgInfoTable *) 0x72
 }}}

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


More information about the ghc-tickets mailing list