DrRacket Internal Error around coroutine-value
Nobody has claimed this yet.
- Dominant language
- Racket
- Stars
- 516
- Forks
- 103
- PR merge metrics
- No merged PRs in 30d
Description
The error looks like it's coming from line 459 of drracket/private/syncheck/blueboxes-gui.rkt:
(define tag+rng (coroutine-value update-the-strs-coroutine))
In the update-the-strs method. I don't know how this is possible since lines 447-449 should have set the update-the-strs-coroutine variable to be a valid (non-false) coroutine.
(unless update-the-strs-coroutine
(set! update-the-strs-coroutine
(coroutine
Unless somehow something else is mutating it in between?
Here's the internal error:
coroutine-value: contract violation
expected: coroutine?
given: #f
in: the 1st argument of
(-> coroutine? any/c)
contract from:
<pkgs>/gui-lib/framework/private/coroutine.rkt
blaming: <pkgs>/drracket/drracket/private/syncheck/blueboxes-gui.rkt
(assuming the contract is correct)
at: <pkgs>/gui-lib/framework/private/coroutine.rkt:10.3
context...:
.../collects/racket/contract/private/blame.rkt:163:0: raise-blame-error16
.../collects/racket/contract/private/arrow-val-first.rkt:388:18
.../pkgs/drracket/drracket/private/syncheck/blueboxes-gui.rkt:446:4: update-the-strs method in ...ck/blueboxes-gui.rkt:176:2
.../pkgs/drracket/drracket/private/syncheck/blueboxes-gui.rkt:652:4: syncheck:update-blue-boxes method in ...ck/blueboxes-gui.rkt:627:2
.../pkgs/drracket/drracket/private/syncheck/gui.rkt:2090:10: loop
.../pkgs/gui-lib/framework/private/logging-timer.rkt:41:0: log-timeline/proc
.../pkgs/gui-lib/mred/private/wx/common/queue.rkt:428:6
.../pkgs/gui-lib/mred/private/wx/common/queue.rkt:479:32
.../pkgs/gui-lib/mred/private/wx/common/queue.rkt:627:3
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in drracket/private/syncheck/blueboxes-gui.rkt, especially lines 447-459 and the update-the-strs method, then trace the stack from coroutine-value through syncheck:update-blue-boxes. Determine how update-the-strs-coroutine can be #f at the failing call and confirm that the internal error no longer occurs when the update path runs.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100