racket / racket/drracket

WXME corrupted and cannot be open

Open
#537 3 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

We're not sure how this happened, but a student managed to get their file corrupted, and we can no longer open it in DrRacket. DrRacket reports the following error.

This error is quite severe as, because it's a WXME file, they cannot recover any of their progress. Thankfully this is a practice problems, but it could be a real problem if it happens on an assessment.

I've uploaded the file here (with the fake .txt extension to circumvent GitHub issues):
2019W1-F-starter.rkt.txt

The error is reproducible in 8.3.0.10 [cs], and 8.1 BC.

There was an error loading ..../Downloads/2019W1-F-starter.rkt.

insert-file in text%: error loading the file (mf-not-okay-after-adding-standard-style)

context:
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/mred/private/editor.rkt> 238 23 8905 1268))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/mred/private/editor.rkt> 225 19 8223 2280))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/framework/private/editor-misc.rkt> 127 10 5004 644))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/framework/private/frame.rkt> 1408 2 55910 9283))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/framework/private/frame.rkt> 762 2 30458 7931))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3609 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/framework/private/frame.rkt> 1058 2 42186 11053))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/framework/private/frame.rkt> 256 2 9082 7172))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/frame.rkt> 838 4 35448 1456))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/unit.rkt> 1411 4 64075 169494))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/module-language.rkt> 1620 4 74928 16237))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/debug.rkt> 1844 4 77405 7759))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/module-language-tools.rkt> 88 4 3388 5267))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/add-on/development/collects/spd-handin/client-gui.rkt> 454 6 16456 2126))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/add-on/development/collects/spd/spd-highlight-gui.rkt> 438 6 23646 5757))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/syncheck/gui.rkt> 2110 6 107995 25119))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/gui-debugger/debug-tool.rkt> 1148 6 55551 21765))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/macro-debugger/tool.rkt> 120 6 3595 11521))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/quickscript/tool.rkt> 68 6 1854 12561))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/deinprogramm-signature/deinprogramm/signature/tool.rkt> 18 6 412 2572))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/htdp-lib/stepper/xml-tool.rkt> 339 8 13619 3018))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/htdp-lib/stepper/stepper-tool.rkt> 173 2 5725 2601))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/htdp-lib/xml/text-box-tool.rkt> 21 5 397 646))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (continue-make-object . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3608 0 195659 2890))
  (do-make-object/real-class . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/private/class-internal.rkt> 3582 0 194445 1099))
  (create-new-drscheme-frame . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/unit.rkt> 5640 2 260324 393))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/contract/private/arrow-higher-order.rkt> 375 33 20717 125))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/contract/private/arrow-val-first.rkt> 489 18 20850 36))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/collects/racket/contract/private/arrow-val-first.rkt> 489 18 20850 36))
  (loop . #(struct:srcloc ".../private/map.rkt" 40 19 1374 258))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/drracket/drracket/private/main.rkt> 908 1 38354 1991))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt> 435 6 19067 1056))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt> 486 32 21054 120))
  (#f . #(struct:srcloc #<path:..../workspace/racket-dev/racket/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt> 634 3 26076 58))

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

Reproduce the failure with the attached 2019W1-F-starter.rkt WXME file in DrRacket 8.3.0.10 [cs] or 8.1 BC. Start at insert-file in gui-lib/mred/private/editor.rkt, especially the stack-trace locations around lines 225 and 238; done means DrRacket can open the supplied file without the mf-not-okay-after-adding-standard-style error.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.