[racket] Handin Server + PLAI problem

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Jan 14 16:47:28 EST 2012

While we wait for Eli to either fix the bug or to track this down to
some other part of the system, applying this diff makes the problem go
away for me.

diff --git a/collects/plai/test-harness.rkt b/collects/plai/test-harness.rkt
index a3f9575..923ea4e 100644
--- a/collects/plai/test-harness.rkt
+++ b/collects/plai/test-harness.rkt
@@ -44,7 +44,8 @@
 (define (halt-on-errors [halt? true])
   (set! halt-on-errors? halt?))

-(provide/contract (print-only-errors (() (boolean?) . ->* . void?)))
+(provide print-only-errors)
+;(provide/contract (print-only-errors (() (boolean?) . ->* . void?)))
 (define (print-only-errors [print? true])
   (set! print-only-errors? print?))

On Sat, Jan 14, 2012 at 3:43 PM, Robby Findler
<robby at eecs.northwestern.edu> wrote:
> Was this ever resolved? I see the same thing and it is a problem for my class.
> I'll reiterate what John said: calling this function seems to be the
> issue; the handin server works fine otherwise. Here's the
> implementation of this function, which seems pretty innocuous.
> (provide/contract (print-only-errors (() (boolean?) . ->* . void?)))
> (define (print-only-errors [print? true])
>  (set! print-only-errors? print?))
> Robby
> On Thu, Jan 12, 2012 at 3:28 PM, Eli Barzilay <eli at barzilay.org> wrote:
>> Four hours ago, John Clements wrote:
>>> I'm having a problem using PLAI plus the handin server.
>>> Specifically, it looks like using (print-only-errors #t) in my code
>>> triggers the error
>>> submit error: Error in your code --
>>> current-directory: `exists' access denied for /home/clements/class/handin/
>>> [...]
>>> In fact, I get the same error when I strip it down to simply
>>> querying the parameter, with (print-only-errors).  However, it's not
>>> *all* parameters that trigger the error; I can submit code
>>> containing (current-error-port) without incident. I've taken a quick
>>> look at the code, and I can't see how setting this parameter would
>>> trigger a call to current-directory.
>> I think that there's some problem where racket will look for its
>> executable in the current $PATH which leads to these problems.
>> Initially I thought that a solution would be to allow 'exists access
>> to all directories in the $PATH, but that sounds shaky, especially if
>> it changes.
>> --
>>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>>                    http://barzilay.org/                   Maze is Life!
>> ____________________
>>  Racket Users list:
>>  http://lists.racket-lang.org/users

Posted on the users mailing list.