Just so we're clear, this should not OOM, but rather print #t?

#lang racket/load

(module A racket
 (provide global go)
 (define global '())
 (define (go) (set! global (cons (random) global)) (go)))

(module B racket
  (require racket/sandbox)
  (display
   (with-handlers ([exn:fail:resource? (λ (e)
                                          (case (exn:fail:resource-resource e)
                                            [(memory) #t]
                                            [else #f]))])
     (call-with-limits 10000 512 (λ () ((dynamic-require ''A 'go)))))))

(require 'B)

-Ian
----- Original Message -----
From: "Robby Findler" <ro...@eecs.northwestern.edu>
To: "J. Ian Johnson" <i...@ccs.neu.edu>
Cc: "dev" <dev@racket-lang.org>
Sent: Wednesday, September 11, 2013 3:34:55 PM GMT -05:00 US/Canada Eastern
Subject: Re: [racket-dev] call-with-limits memory bound isn't actually bounding 
memory usage


The namespace...? 



On Wed, Sep 11, 2013 at 2:20 PM, J. Ian Johnson < i...@ccs.neu.edu > wrote: 


I've since changed to using a dynamic-require, but still the memory limit is 
not respected. Why wouldn the globals from a dynamic-require be considered 
reachable outside the sandbox that calls dynamic-require? There's no other way 
to get it. 

-Ian 
----- Original Message ----- 


From: "J. Ian Johnson" < i...@ccs.neu.edu > 
To: "David Vanderson" < david.vander...@gmail.com > 
Cc: "dev" < dev@racket-lang.org >, "J. Ian Johnson" < i...@ccs.neu.edu > 
Sent: Monday, September 9, 2013 2:01:02 PM GMT -05:00 US/Canada Eastern 
Subject: Re: [racket-dev] call-with-limits memory bound isn't actually bounding 
memory usage 

Ah, that would probably be the problem. Without having to modify too much code, 
would the proper way to call a function entirely within the sandbox be to use 
dynamic-require in the thunk, rather than require in the module using 
call-with-limits? 
-Ian 
----- Original Message ----- 
From: "David Vanderson" < david.vander...@gmail.com > 
To: "J. Ian Johnson" < i...@ccs.neu.edu > 
Cc: "dev" < dev@racket-lang.org > 
Sent: Monday, September 9, 2013 1:50:13 PM GMT -05:00 US/Canada Eastern 
Subject: Re: [racket-dev] call-with-limits memory bound isn't actually bounding 
memory usage 

Just to make sure, is the memory being allocated reachable from outside 
the sandbox? 

http://www.cs.utah.edu/plt/publications/ismm04-addendum.txt 

On 09/09/2013 01:29 PM, J. Ian Johnson wrote: 
> I don't use the gui framework at all. This is all just pounding on global 
> hash-tables and vectors. Or are you talking about the sandbox queuing up 
> callbacks? 
> -Ian 
> ----- Original Message ----- 
> From: "Robby Findler" < ro...@eecs.northwestern.edu > 
> To: "J. Ian Johnson" < i...@ccs.neu.edu > 
> Cc: "dev" < dev@racket-lang.org > 
> Sent: Monday, September 9, 2013 1:16:51 PM GMT -05:00 US/Canada Eastern 
> Subject: Re: [racket-dev] call-with-limits memory bound isn't actually 
> bounding memory usage 
> 
> 
> The framework will, sometimes do stuff that queues callbacks and, depending 
> on how you've set up other things, the code running there might escape from 
> the limit. Did you try putting the eventspace under the limit too? 
> 
> Robby 
> 
> 
> 
> On Mon, Sep 9, 2013 at 10:54 AM, J. Ian Johnson < i...@ccs.neu.edu > wrote: 
> 
> 
> I'm running my analysis benchmarks in the context of (with-limits (* 30 60) 
> 2048 <run-analysis>), and it's been good at killing the process when the run 
> should time out, but now I have an instantiation of the framework that just 
> gobbles up 15GiB of memory without getting killed. What might be going on 
> here? 
> 
> Running 5.90.0.9 
> -Ian 
> _________________________ 
> Racket Developers list: 
> http://lists.racket-lang.org/dev 
> 
> _________________________ 
> Racket Developers list: 
> http://lists.racket-lang.org/dev 
> 

_________________________ 
Racket Developers list: 
http://lists.racket-lang.org/dev 


_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to