[GHC] #15892: Segmentation fault with ByteString

GHC ghc-devs at haskell.org
Thu Nov 15 03:35:41 UTC 2018


#15892: Segmentation fault with ByteString
----------------------------------+--------------------------------------
        Reporter:  akio           |                Owner:  (none)
            Type:  bug            |               Status:  patch
        Priority:  highest        |            Milestone:  8.6.3
       Component:  Compiler       |              Version:  8.6.2
      Resolution:                 |             Keywords:
Operating System:  Linux          |         Architecture:  x86_64 (amd64)
 Type of failure:  Runtime crash  |            Test Case:
      Blocked By:                 |             Blocking:
 Related Tickets:                 |  Differential Rev(s):  Phab:D5334
       Wiki Page:                 |
----------------------------------+--------------------------------------

Comment (by Ömer Sinan Ağacan <omeragacan@…>):

 In [changeset:"eb46345d37ee61575e6fed04da718c1b7ee0bb99/ghc"
 eb46345d/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="eb46345d37ee61575e6fed04da718c1b7ee0bb99"
 Fix a bug in SRT generation (#15892)

 Summary:
 The logic in `Note [recursive SRTs]` was correct. However, my
 implementation of it wasn't: I got the associativity of
 `Set.difference` wrong, which led to an extremely subtle and difficult
 to find bug.

 Fortunately now we have a test case. I was able to cut down the code
 to something manageable, and I've added it to the test suite.

 Test Plan:
 Before (using my stage 1 compiler without the fix):

 ```
 ====> T15892(normal) 1 of 1 [0, 0, 0]
 cd "T15892.run" &&  "/home/smarlow/ghc/inplace/bin/ghc-stage1" -o T15892
 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts
 -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat
 -dno-debug-output  -O
 cd "T15892.run" && ./T15892  +RTS -G1 -A32k -RTS
 Wrong exit code for T15892(normal)(expected 0 , actual 134 )
 Stderr ( T15892 ):
 T15892: internal error: evacuate: strange closure type 0
     (GHC version 8.7.20181113 for x86_64_unknown_linux)
     Please report this as a GHC bug:
 http://www.haskell.org/ghc/reportabug
 Aborted (core dumped)
 *** unexpected failure for T15892(normal)
 =====> T15892(g1) 1 of 1 [0, 1, 0]
 cd "T15892.run" &&  "/home/smarlow/ghc/inplace/bin/ghc-stage1" -o T15892
 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts
 -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat
 -dno-debug-output  -O
 cd "T15892.run" && ./T15892 +RTS -G1 -RTS +RTS -G1 -A32k -RTS
 Wrong exit code for T15892(g1)(expected 0 , actual 134 )
 Stderr ( T15892 ):
 T15892: internal error: evacuate: strange closure type 0
     (GHC version 8.7.20181113 for x86_64_unknown_linux)
     Please report this as a GHC bug:
 http://www.haskell.org/ghc/reportabug
 Aborted (core dumped)
 ```

 After (using my stage 2 compiler with the fix):

 ```
 =====> T15892(normal) 1 of 1 [0, 0, 0]
 cd "T15892.run" &&  "/home/smarlow/ghc/inplace/test   spaces/ghc-stage2"
 -o T15892 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts
 -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat
 -dno-debug-output
 cd "T15892.run" && ./T15892  +RTS -G1 -A32k -RTS
 =====> T15892(g1) 1 of 1 [0, 0, 0]
 cd "T15892.run" &&  "/home/smarlow/ghc/inplace/test   spaces/ghc-stage2"
 -o T15892 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts
 -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat
 -dno-debug-output
 cd "T15892.run" && ./T15892 +RTS -G1 -RTS +RTS -G1 -A32k -RTS
 ```

 Reviewers: bgamari, osa1, erikd

 Reviewed By: osa1

 Subscribers: rwbarton, carter

 GHC Trac Issues: #15892

 Differential Revision: https://phabricator.haskell.org/D5334
 }}}

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


More information about the ghc-tickets mailing list