racket / drracket

DrRacket, IDE for Racket
http://www.racket-lang.org/
Other
445 stars 93 forks source link

WXME corrupted and cannot be open #537

Open wilbowma opened 2 years ago

wilbowma commented 2 years ago

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))
spdegabrielle commented 2 years ago

How did they do this? (Not about blame but I’m interested in what triggered the corruption)

wilbowma commented 2 years ago

Unfortunately, I don’t know, and can’t get any details from the student.

-- Sent from my phoneamajig

On Dec 16, 2021, at 12:07, Stephen De Gabrielle @.***> wrote:

 How did they do this?

— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you authored the thread.

rfindler commented 2 years ago

I'm not sure this is helpful, but this file looks truncated. It also is the case that if I save a valid file and then use emacs to remove the end of it, I get the same error message.