racket / racket/drracket

DrRacket sequence-contract-violation: negative: method insert cannot be called

Open
#522 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
516
Forks
103
PR merge metrics
No merged PRs in 30d

Description

What version of Racket are you using?
Racket 8.1 CS

What program did you run?
I cannot reproduce the bug, and cannot share the student's code.

A student somehow triggered this error in DrRacket, after which DrRacket would not close, would not force quit, would not allow the laptop to restart, and had to be killed with kill -9.

It appears to have been triggered while saving the file.

What should have happened?
The file should have saved, or at least, not completely borked DrRacket.

If you got an error message, please include it here.

#| DrRacket Internal Error
sequence-contract-violation: negative: method insert cannot be called, except in states (unlocked), args ";; The first three lines of this file were inserted by DrRacket. They record metadata\n;; about
the language level of this file in a form that our tools can easily process.\n#reader(lib \"htdp-intermediate-reader.ss\" \"lang\")((modname pset-08-starter... 0 0
  context...:
   /Applications/Racket v8.1/share/pkgs/drracket/drracket/private/unit.rkt:581:10: on-save-file method in ...ket/private/unit.rkt:556:8
   /Applications/Racket v8.1/share/pkgs/gui-lib/mred/private/editor.rkt:274:6: save-file method in make-editor-buffer%
   /Applications/Racket v8.1/share/pkgs/drracket/drracket/private/unit.rkt:2981:8
   /Applications/Racket v8.1/share/pkgs/drracket/drracket/private/unit.rkt:2980:6: save-all-unsaved-files method in frame-mixin
   /Applications/Racket v8.1/share/pkgs/drracket/drracket/private/unit.rkt:3388:6: on-activate method in frame-mixin
   /Applications/Racket v8.1/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:435:6
   /Applications/Racket v8.1/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:486:32
   /Applications/Racket v8.1/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:634:3
|#

Please include any other relevant details
macOS

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by examining the save path shown in the stack trace, especially drracket/private/unit.rkt and gui-lib/mred/private/editor.rkt. Reproduce the sequence-contract-violation during saving on macOS if possible, then determine why insert is called outside the unlocked state. Done means saving no longer triggers the internal error or leaves DrRacket unable to close.

Written by the indexing model from the issue text.

Assessment

Domain
desktop, devtools
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.