[racket] make-base-eval in Scribble file causing segmentation fault when building docs

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sat May 31 04:40:20 EDT 2014

I'm able to replicate the crash in v5.3.6, too. I need a little more
than the lines below, but

 #lang scribble/manual
 @(require scribble/eval)
 @(void (make-base-eval))
 @((make-base-eval) `(require describe))

is enough.

Also, I can get a crash when installing just "describe".

The problem goes away if I strip `math/bigfloat` our of `describe`. The
crash is custodian-related according to a low-level stack trace, the
`bigfloat` library uses `register-custodian-shutdown`, etc... see
Racket commit 7e42ee2003. That timing is consistent with a bug in
v5.3.x fixed in v6.x.

I can't think of a simple workaround to avoid the crash, but running
`raco setup -j 1` might clean up after the crash. Using `-j 1` avoids
building in parallel, since places seem to aggravate the bug.

At Fri, 30 May 2014 19:31:32 -0700, Matthew Butterick wrote:
> Looking for clues that would help debug the following error —
> 
> I'm converting a package [1] to be multi-collection & thus compatible with 
> Racket 5.3.5.
> 
> The revised package works with 6.0. But under 5.3.5, I get a fatal 
> 'segmentation fault: 11' error while building the docs. I by trial & error I 
> have traced the offending code to the call to `make-base-eval` shown below:
> 
> #lang scribble/manual
> @(require scribble/eval)
> @(define my-eval (make-base-eval))
> 
> The segfault occurs when I install the package from the local directory, or 
> when I use the Github URL for the source. [2]
> 
> Comparing the docs between 5.3.5 and 6.0, I don't see any changes to 
> make-base-eval, so at this point, I'm stuck for ideas.
> 
>  
> 
> 
> [1] http://github.com/mbutterick/sugar/tree/dev-53
> 
> [2] github://github.com/mbutterick/sugar/dev-53____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users


Posted on the users mailing list.