[GHC] #677: segfault with C<->Haskell ping-pong, should be stack overflow

GHC trac at galois.com
Sun Jan 29 17:03:02 EST 2006


#677: segfault with C<->Haskell ping-pong, should be stack overflow
--------------------------------+-------------------------------------------
    Reporter:  as49 at kent.ac.uk  |        Owner:         
        Type:  bug              |       Status:  new    
    Priority:  normal           |    Milestone:         
   Component:  Runtime System   |      Version:  6.4    
    Severity:  normal           |     Keywords:  GC FFI 
          Os:  Linux            |   Difficulty:  Unknown
Architecture:  x86              |  
--------------------------------+-------------------------------------------
Maybe this relates to bug #370. In the infinite sequence:

 `Haskell function f: alloca memory then call C func g`
 `C function g: call Haskell function f`

 The program terminates with a segmentation fault, rather than a stack
 overflow. I think I experience this problem in a real program which has a
 finite ping-pong sequence. I think there is actually a bug in the GC,
 since the segfault occurs after a very varying number of steps. It works
 with both, 6.2.2 and 6.4.

 The three files
 [http://www.cs.kent.ac.uk/people/staff/as49/membug.h membug.h]
 [http://www.cs.kent.ac.uk/people/staff/as49/membug.c membug.c]
 [http://www.cs.kent.ac.uk/people/staff/as49/MemBug.hs MemBug.hs]
 show this behaviour (nothing deep, but saves typing).

 Compile with:

 `ghc-6.4 -fffi -c MemBug.hs membug.c`

 Link with:

 `ghc-6.4 MemBug.o membug.o MemBug_stub.o`

 Run with:

 `./a.out +RTS -H5m -G1`

 Note that any other opetions would do, too.

 Axel.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/677>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list