[racket] Recent GIT HEAD Breakage On Linux

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon May 14 11:36:36 EDT 2012

I'm pretty sure the sandbox should treat linked collections the same as
collections accessible via `(current-library-collection-paths)', so
I'll push that change.

At Mon, 14 May 2012 08:00:36 -0500, Robby Findler wrote:
> Oh, yse. I'm seeing that too. Thanks! DrRacket now protects itself
> against this specific problem by catching errors during creation of
> the sanbox and just giving up on looking at the language.
> 
> I made an example at the end of this message show what appears to be a
> problem with the sandbox.
> 
> I'm not sure, but based on past experience, I think Eli will say it is
> the intended behavior. (It seems a bit unfortunate, tho, that creating
> an environment to do a protected form of evaluation can fail outside
> of the environment instead of inside of it. After all, isn't that kind
> of the point of the sandbox, to handle such things for me in the
> library?)
> 
> Robby
> 
> I created a raco link -d with a directory that does not contain a
> 'racket' subdirectory.
> 
> [robby at yanpu] ~/git/plt/collects/drracket/private$ raco link -l
> User links:
>  root  path: "/Users/robby/unison/collects"
> Installation links:
> 
> Then it isn't hard to get this error:
> 
> [robby at yanpu] ~/git/plt/collects/drracket/private$ racket
> Welcome to Racket v5.3.0.7.
> > (require racket/sandbox)
> > (make-evaluator 'racket/base)
> directory-exists?: `exists' access denied for
> /Users/robby/unison/collects/racket
> 
>  === context ===
> cloop
> standard-module-name-resolver
> /Users/robby/git/plt/collects/racket/private/namespace.rkt:26:2:
> make-base-namespace
> /Users/robby/git/plt/collects/racket/sandbox.rkt:430:0:
> make-evaluation-namespace
> /Users/robby/git/plt/collects/racket/sandbox.rkt:672:0: make-evaluator*
> /Users/robby/git/plt/collects/racket/private/misc.rkt:87:7
> 
> 
> On Mon, May 14, 2012 at 7:40 AM, Ray Racine <ray.racine at gmail.com> wrote:
> > I was just tossing it out in case it tickled someone's memory regarding a
> > recent commit.
> >
> > Just last night I think I stumbled onto the problem, but as yet have not
> > confirmed it.  I purchased a new laptop on Friday and DrRacket, built from
> > source, worked perfectly, so I assumed it was detritus build up on my old
> > Fedora server box as the new laptop is Ubuntu 12.04.  An then lo' and behold
> > the problem started to manifest itself on Sat. when building Racket on the
> > laptop.
> >
> > I _think_ the issue happens when raco link -d is used to add a new
> > collection and then Racket is built from source.  During the build process
> > of Racket, looking carefully one where small failures are occurring with the
> > build looking for mred, and racket sub-dirs the raco link(ed) collection
> > root.
> >
> > When the build completes Racket runs fine except for the DrRacket REPL borks
> > when you type anything into it.  The message is something along the lines of
> > "mred failed... no permission to check for `exists?` on directory
> > /my/raco/linked/collection/root/mred".
> >
> > If I remove the raco link to my personal collection, then build Racket and
> > then subsequently re-add the collection _after_ building Racket from source
> > everything is fine.
> >
> > Ray
> >
> >
> > On Mon, May 14, 2012 at 8:17 AM, Robby Findler <robby at eecs.northwestern.edu>
> > wrote:
> >>
> >> (Sorry it has taken me so long to reply to this.)
> >>
> >> What was in the definitions window when you did this?
> >>
> >> The stack trace makes me think that there is something wrong with the
> >> language in the definitions window and something wrong with DrRacket's
> >> error recover code in that case, as that's what DrRacket seems to be
> >> doing is to try get some information from the language to use to
> >> determine if the expression you're editing in the REPL is a complete
> >> expression or not (ie if the return is just a newline, or if it should
> >> submit the expression for evaluation).
> >>
> >> Robby
> >>
> >> On Wed, May 9, 2012 at 8:11 PM, Ray Racine <ray.racine at gmail.com> wrote:
> >> > Hi,
> >> >
> >> > Recently (1-2 weeks?) GIT HEAD stopped working for me with the following
> >> > error.  This happens in DrRacket when I attempt to use the REPL (hit the
> >> > Run
> >> > button, get the prompt, enter anything <rtn>, and BORK!! as below).
> >> >  Everything else in DrRacket is flawless, editing, TypedRacket
> >> > performance,
> >> > check syntax etc.
> >> >
> >> > This is on a Linux, Fedora 16 64 bit.  Racket is built fresh after a git
> >> > clean -fdx.
> >> >
> >> > [ray at ray pgm]$ racket/gui/base is not available
> >> >
> >> >  === context ===
> >> > /usr/local/racket/collects/racket/sandbox.rkt:94:0:
> >> > sandbox-make-namespace
> >> > /usr/local/racket/collects/racket/sandbox.rkt:430:0:
> >> > make-evaluation-namespace
> >> > /usr/local/racket/collects/racket/sandbox.rkt:672:0: make-evaluator*
> >> > /usr/local/racket/collects/drracket/private/module-language.rkt:105:6:
> >> > init-sandbox
> >> > /usr/local/racket/collects/drracket/private/module-language.rkt:92:6:
> >> > get-language-info method in .../module-language.rkt:88:4
> >> > /usr/local/racket/collects/drracket/private/rep.rkt:924:6:
> >> > submit-to-port?
> >> > method in ...cket/private/rep.rkt:389:4
> >> > /usr/local/racket/collects/framework/private/text.rkt:2166:4:
> >> > on-local-char
> >> > method in ...ork/private/text.rkt:2002:2
> >> > /usr/local/racket/collects/mred/private/wxme/editor-canvas.rkt:446:2:
> >> > on-char method in editor-canvas%
> >> > /usr/local/racket/collects/racket/private/more-scheme.rkt:151:2:
> >> > call-with-break-parameterization
> >> > /usr/local/racket/collects/racket/private/more-scheme.rkt:268:2:
> >> > call-with-exception-handler
> >> > /usr/local/racket/collects/mred/private/wx/gtk/window.rkt:631:4:
> >> > dispatch-on-char method in window%
> >> > /usr/local/racket/collects/mred/private/wx/common/queue.rkt:445:6
> >> > /usr/local/racket/collects/mred/private/wx/common/queue.rkt:485:32
> >> > /usr/local/racket/collects/mred/private/wx/common/queue.rkt:633:3
> >> >
> >> > channel-put: expected argument of type <channel>; given: #f
> >> >
> >> >  === context ===
> >> > /usr/local/racket/collects/racket/private/misc.rkt:168:2: channel-put
> >> >
> >> >
> >> > ____________________
> >> >  Racket Users list:
> >> >  http://lists.racket-lang.org/users
> >> >
> >
> >
> 
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users


Posted on the users mailing list.