GHC internal error

Simon Marlow marlowsd at gmail.com
Tue Apr 6 10:10:53 EDT 2010


If you aren't using anything unsafe, then it is a bug.  Even if you are 
using something unsafe, it might still be a bug; either way if you can 
narrow down to the smallest program (+data) that crashes that would be 
immensely helpful.

Does the result change if you use different GC settings?  I like to use 
+RTS -A8k to force GC to happen as often as possible, it helps to flush 
out GC problems earlier.

Cheers,
	Simon

On 05/04/2010 20:05, Philip Weaver wrote:
> Yes, I can do that.  However, I'm hoping to narrow it down a lot more so
> that I can file a more useful bug report.
>
> Since sending my last email, I have learned a bit more:
>
> I was using 'fail' (the Monad being ReaderT . StateT . ST) to report
> errors.  If I replace 'fail msg' with 'error msg' or 'return (error
> msg)', then the aforementioned internal error does not occur.
>
> In some cases, the program dies with the aforementioned error.  In other
> cases, it segfaults.
>
> - Philip
>
> On Mon, Apr 5, 2010 at 11:59 AM, Don Stewart <dons at galois.com
> <mailto:dons at galois.com>> wrote:
>
>     Any 'internal error' is almost certainly an RTS or compiler bug. Can you
>     make a bug report?
>
>
>     philip.weaver:
>      > Hi all,
>      >
>      > A program that I built with GHC is crashing at runtime with the
>     following
>      > error:
>      >
>      >     internal error: eval_thunk_selector: strange selectee 12
>      >
>      > I have not found much via Google, just an old post regarding ghc
>     6.0 that
>      > recommends cleaning and rebuilding.  I have cleaned the build
>     directory and
>      > re-built the executable, and I still get the error.
>      >
>      > The program is a compiler, and this error began showing up after
>     I added
>      > support for memoization of results using the ST Monad and STRefs.
>       For example,
>      > the following function creates a reference to a thunk:
>      >
>      > newMutableRef m
>      >   = do ref <- newSTRef $ error "access ref too soon!"
>      >        let m' = do r <- m
>      >                    writeSTRef ref (return r)
>      >                    return r
>      >        writeSTRef ref m'
>      >        return $ ref
>      >
>      > Here's some information about my system:
>      >
>      >   • GHC 6.12.1
>      >   • Mac OS X 10.6.3 (Snow Leopard)
>      >
>      > So, what could cause this error?  Any suggestions that can help
>     me narrow down
>      > the problem would be greatly appreciated.  If this is in fact a
>     GHC bug, I'd
>      > like to find a workaround for now and also reproduce it in a
>     small example so I
>      > can file a bug report.
>      >
>      > - Philip
>      >
>
>      > _______________________________________________
>      > Glasgow-haskell-users mailing list
>      > Glasgow-haskell-users at haskell.org
>     <mailto:Glasgow-haskell-users at haskell.org>
>      > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>
>
>
>
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



More information about the Glasgow-haskell-users mailing list