[plt-dev] DrScheme definitions crash in pre-release

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat May 23 12:08:12 EDT 2009

Looking at the code, I think this could happen if the buffer were
modified (triggering a callback that sets arrow-vectors to #f) while
check syntax were still coloring the buffer. Check syntax does do
things like lock the editor in order to ensure that those callbacks
don't happen.

So I guess the thing to do would be to figure out how it is getting
set, probably by inspecting the stack at the point where  (set!
arrow-vectors #f) happens (line 404). If you dont' mind, could you add
this between lines 403 and 404 and send the output?

                  (printf "~s\n" (continuation-mark-set->context
(current-continuation-marks)))

... are you in a teaching language? That would actually make more
sense to me (but I'm still not getting the error to happen there
either).

Robby

On Sat, May 23, 2009 at 10:57 AM, Robby Findler
<robby at eecs.northwestern.edu> wrote:
> I tried to follow the steps with collects/drscheme/private/rep.ss and
> couldn't make it fail. Specifically, I hit return on the second line
> (making the buffer modified) and then check syntax; I waited until it
> was in "coloring" mode (according to the status line) and then hit
> cmd-s (for save) and nothing bad happened. I only tried it about 4
> times, tho, so maybe I just didn't try enough?
>
> Or possibly because I'm using a mac there is something about the way
> event handling works on the mac that makes me miss the bug (because
> the save button does not go away until check syntax completes).
>
> Robby
>
> On Fri, May 22, 2009 at 3:23 PM, David Van Horn <dvanhorn at ccs.neu.edu> wrote:
>> I can consistently put DrScheme in a bad state by the following:
>>
>> 1) Open a fairly large file (so syntax checking takes time)
>> 2) Make a change
>> 3) click Check Syntax
>> 4) click Save -- before checking is complete.
>>
>> It seems as soon as syntax checking completes, an internal error is
>> signalled.  The error varies, but it always occurs.  Here are a couple:
>>
>> 1)
>>
>> sequence-contract-violation: negative: method delete cannot be called,
>> except in states (unlocked), args 0 360
>>
>>  === context ===
>> /Applications/PLT Scheme Full
>> v4.1.900/collects/drscheme/private/unit.ss:529:10: after-save-file method in
>> ...heme/private/unit.ss:454:8
>> /Applications/PLT Scheme Full
>> v4.1.900/collects/drscheme/private/unit.ss:3884:29
>> /Applications/PLT Scheme Full
>> v4.1.900/collects/scheme/private/more-scheme.ss:155:2:
>> call-with-break-parameterization
>> /Applications/PLT Scheme Full
>> v4.1.900/collects/scheme/private/more-scheme.ss:271:2:
>> call-with-exception-handler
>>
>> 2)
>>
>> hash-ref: expects type <hash> as 1st argument, given: #f; other arguments
>> were: #(struct:object:...engine/test-tool.scm:30:6 ...)
>> #<procedure:...heme/syncheck.ss:461:35>
>>
>>  === context ===
>> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:414:12:
>> syncheck:add-menu method in ...drscheme/syncheck.ss:221:10
>> /Applications/PLT Scheme Full v4.1.900/collects/scheme/private/map.ss:44:11:
>> for-each
>> /Applications/PLT Scheme Full
>> v4.1.900/collects/drscheme/syncheck.ss:1671:22: at-phase
>> /Applications/PLT Scheme Full v4.1.900/collects/scheme/private/map.ss:44:11:
>> for-each
>> /Applications/PLT Scheme Full v4.1.900/collects/scheme/private/map.ss:44:11:
>> for-each
>> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:1489:4:
>> annotate-basic
>> /Applications/PLT Scheme Full
>> v4.1.900/collects/drscheme/syncheck.ss:1413:14: expanded-expression
>> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:1247:38
>> /Applications/PLT Scheme Full v4.1.900/collects/drscheme/syncheck.ss:1244:35
>>
>> After this, the definitions window is broken.  I cannot reposition the
>> cursor, type text, etc.  I can click Save but it doesn't go away.  Run and
>> the interactions window work fine.
>>
>> This is on 4.1.900-svn21may2009 [3m], Mac OSX, ISL/lambda.
>>
>> Should I be submitting bug reports, or emailing this list since this
>> concerns the release candidate?
>>
>> David
>> _________________________________________________
>>  For list-related administrative tasks:
>>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>>
>


Posted on the dev mailing list.