[racket-dev] errors from `force`

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Wed Aug 29 11:23:20 EDT 2012

On Wed, Aug 29, 2012 at 11:17 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> At Wed, 29 Aug 2012 10:34:02 -0400, Sam Tobin-Hochstadt wrote:
>> On Wed, Aug 29, 2012 at 9:20 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
>> > At Mon, 27 Aug 2012 17:36:42 -0400, Sam Tobin-Hochstadt wrote:
>> >> Since I've made the Typed Racket tests run in parallel, there have
>> >> been intermittent errors in DrDr, like this:
>> >>
>> >>   http://drdr.racket-lang.org/25278/collects/tests/typed-racket/run.rkt
>> >>
>> >> I'm not sure exactly what could be causing this -- I don't think
>> >> promises should ever fail to `force`.  Might there be something I'm
>> >> doing wrong, or is this a bug in promises?
>> >
>> > I've fixed a race in `delay/sync' that I think could cause the error.
>> Unfortunately, this DrDr build with your fix still has the problem:
>> http://drdr.racket-lang.org/25292/collects/tests/typed-racket/run.rkt
>> I've never been able to reproduce this bug on my machine, though.
> For this problem, I think I should be looking at `delay/thread',
> instead of `delay/sync'.
> I can provoke the error in the DrDr report with
>  (force (delay/thread (kill-thread (current-thread))))
> I'll fix `delay/thread'. But could it be that a test wrapped with
> `delay/thread' times out and aborts by killing the current thread?

There's no timeout in the Typed Racket tests themselves, and I don't
think it's running into the DrDr timeout, since that's much longer
than the the 10 seconds it's taking to produce this error.

I'll investigate why the thread is getting killed.
sam th
samth at ccs.neu.edu

Posted on the dev mailing list.