New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 10 Creators Update blue-screen crash #1671

Open
Tonytv1 opened this Issue Apr 19, 2017 · 41 comments

Comments

Projects
None yet
@Tonytv1

Tonytv1 commented Apr 19, 2017

There's a problem when I open the app. I open it and it works for a few seconds and then Windows says "There was a critical problem, we need to reboot the system now" and it happens everytime just with dr racket. What should I do?. Windows supports just tell me that I should unninstall the app. I have Racket 6.8 and Windows 10 Creators Update

@Wanghattan

This comment has been minimized.

Show comment
Hide comment
@Wanghattan

Wanghattan Apr 20, 2017

Happening to both my computers too. Both are Win10 creator update!

Wanghattan commented Apr 20, 2017

Happening to both my computers too. Both are Win10 creator update!

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Apr 20, 2017

Member

"We need to reboot the system now" is clearly a bug in the OS, but it's possible that DrRacket is doing something wrong to provoke the OS crash. Unfortunately, installing Windows 10 Creators Update on my development virtual machine has not been enough to let me experience the crash myself.

Is there any action in particular that causes the crash? Do you have to move the mouse, type on the keyboard, or use a scrolling gesture? Or does the OS crash without any further input? Does running plain "Racket.exe" crash? If not, how about "lib/GRacket.exe"? (I realize that asking you to crash your machine to check these details is asking a lot!)

Member

mflatt commented Apr 20, 2017

"We need to reboot the system now" is clearly a bug in the OS, but it's possible that DrRacket is doing something wrong to provoke the OS crash. Unfortunately, installing Windows 10 Creators Update on my development virtual machine has not been enough to let me experience the crash myself.

Is there any action in particular that causes the crash? Do you have to move the mouse, type on the keyboard, or use a scrolling gesture? Or does the OS crash without any further input? Does running plain "Racket.exe" crash? If not, how about "lib/GRacket.exe"? (I realize that asking you to crash your machine to check these details is asking a lot!)

@Wanghattan

This comment has been minimized.

Show comment
Hide comment
@Wanghattan

Wanghattan Apr 20, 2017

I'll make a video and post it within the hour.

Wanghattan commented Apr 20, 2017

I'll make a video and post it within the hour.

@Wanghattan

This comment has been minimized.

Show comment
Hide comment
@Wanghattan

Wanghattan Apr 20, 2017

Video of when computer had been used for hours without any issues, but as soon as I open DrRacket, this happens.
https://goo.gl/photos/WgV9677ehWZrgrUV6

And here's the video of newly restarted computer and then opening DrRacket. Notice that I don't write anything the second time and same thing happens.
https://goo.gl/photos/ERFf4vvsMwstSq9f9

The build I'm on is 15063.138. I see there's an update for Windows. I'll update you guys if the bug is still there after I update.

Hope that helps.

EDIT: I realise now that DrRacket on the PC I filmed on is 6.7. I just installed 6.8 and have the same issues.

Wanghattan commented Apr 20, 2017

Video of when computer had been used for hours without any issues, but as soon as I open DrRacket, this happens.
https://goo.gl/photos/WgV9677ehWZrgrUV6

And here's the video of newly restarted computer and then opening DrRacket. Notice that I don't write anything the second time and same thing happens.
https://goo.gl/photos/ERFf4vvsMwstSq9f9

The build I'm on is 15063.138. I see there's an update for Windows. I'll update you guys if the bug is still there after I update.

Hope that helps.

EDIT: I realise now that DrRacket on the PC I filmed on is 6.7. I just installed 6.8 and have the same issues.

@LeifAndersen

This comment has been minimized.

Show comment
Hide comment
@LeifAndersen

LeifAndersen Apr 21, 2017

Member

Oh weird. I also noticed that in the first language you were using r5rs, but in the second one you didn't have a language set.

Member

LeifAndersen commented Apr 21, 2017

Oh weird. I also noticed that in the first language you were using r5rs, but in the second one you didn't have a language set.

@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler Apr 21, 2017

Member
Member

rfindler commented Apr 21, 2017

@LeifAndersen

This comment has been minimized.

Show comment
Hide comment
@LeifAndersen

LeifAndersen Apr 21, 2017

Member

Ya, that makes sense. What I was more thinking of was this makes it less likely that background macro expansion somehow killed it. (Although I could be totally wrong about that.)

Member

LeifAndersen commented Apr 21, 2017

Ya, that makes sense. What I was more thinking of was this makes it less likely that background macro expansion somehow killed it. (Although I could be totally wrong about that.)

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Apr 21, 2017

Member

@Wanghattan Thanks!

I have been able to crash the OS on my VM by using Remote Desktop from a machine (my phone) that is capable of generating touchpad events. I suspect it has something to do with events generated that way.

Member

mflatt commented Apr 21, 2017

@Wanghattan Thanks!

I have been able to crash the OS on my VM by using Remote Desktop from a machine (my phone) that is capable of generating touchpad events. I suspect it has something to do with events generated that way.

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Apr 22, 2017

Member

No conclusions, but an update: The crash for me consistently happens when I use Remote Desktop on my phone to click in an editor area. (Key and mouse-move events do not trigger the crash.) It doesn't happen with just GRacket. It doesn't happen if I change the GUI library to prevent dequeuing GUI events. The crash does still happen if I allow the GUI library to dequeue events, even if the events are not translated or dispatched.

Member

mflatt commented Apr 22, 2017

No conclusions, but an update: The crash for me consistently happens when I use Remote Desktop on my phone to click in an editor area. (Key and mouse-move events do not trigger the crash.) It doesn't happen with just GRacket. It doesn't happen if I change the GUI library to prevent dequeuing GUI events. The crash does still happen if I allow the GUI library to dequeue events, even if the events are not translated or dispatched.

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Apr 22, 2017

Member

I've discovered that disabling the Check Syntax tool avoids the crash in my setup.

@Wanghattan or others who see crashes: Does disabling the Check Syntax tool prevent the crash? Normally, you'd disable the tool through the "Tools" panel of the preferences dialog. If you can't get DrRacket to run long enough for that, try editing the file "{Home}/AppData/Roaming/Racket/racket-prefs.rktd" to have

(
 (plt:framework-pref:drracket:tools-configuration ((((lib "drracket") "syncheck.rkt") skip)))
)

––––––––––––––––––––––––––––––––

On my machine, the crash persists even if I reduce the Check Syntax tool to the implementation below. So, it seems the problem has something to do with extra levels of panel nesting. Removing either get-definitions/interactions-panel-parent or make-root-area-container makes the crash go away.

Happily, all indications so far suggest a simple workaround. @robby – it looks like make-root-area-container isn't needed at all in the current implementation. Is that right? Can we just remove it? That seems to be enough to avoid the crash with my setup.

#lang racket/base

(require racket/gui/base
	 racket/unit
         racket/class
         drracket/tool)
(provide tool@)

(define tool@ 
  (unit 
    (import drracket:tool^)
    (export drracket:tool-exports^)
    
    (define (phase1) (void))
    (define (phase2) (void))

    (define unit-frame-mixin
      (mixin (drracket:unit:frame<%>) ()
        
        (define/override (get-definitions/interactions-panel-parent)
          (define report-error-parent-panel
            (make-object vertical-panel%
                         (super get-definitions/interactions-panel-parent)))
          (define res (make-object vertical-panel% report-error-parent-panel))
          res)

        (define/override (make-root-area-container % parent)
          (let* ([s-root (super make-root-area-container
                                vertical-panel%
                                parent)]
                 [r-root (make-object % s-root)])
            r-root))
    
        (super-new)))
    
    (drracket:get/extend:extend-unit-frame unit-frame-mixin #f)))
Member

mflatt commented Apr 22, 2017

I've discovered that disabling the Check Syntax tool avoids the crash in my setup.

@Wanghattan or others who see crashes: Does disabling the Check Syntax tool prevent the crash? Normally, you'd disable the tool through the "Tools" panel of the preferences dialog. If you can't get DrRacket to run long enough for that, try editing the file "{Home}/AppData/Roaming/Racket/racket-prefs.rktd" to have

(
 (plt:framework-pref:drracket:tools-configuration ((((lib "drracket") "syncheck.rkt") skip)))
)

––––––––––––––––––––––––––––––––

On my machine, the crash persists even if I reduce the Check Syntax tool to the implementation below. So, it seems the problem has something to do with extra levels of panel nesting. Removing either get-definitions/interactions-panel-parent or make-root-area-container makes the crash go away.

Happily, all indications so far suggest a simple workaround. @robby – it looks like make-root-area-container isn't needed at all in the current implementation. Is that right? Can we just remove it? That seems to be enough to avoid the crash with my setup.

#lang racket/base

(require racket/gui/base
	 racket/unit
         racket/class
         drracket/tool)
(provide tool@)

(define tool@ 
  (unit 
    (import drracket:tool^)
    (export drracket:tool-exports^)
    
    (define (phase1) (void))
    (define (phase2) (void))

    (define unit-frame-mixin
      (mixin (drracket:unit:frame<%>) ()
        
        (define/override (get-definitions/interactions-panel-parent)
          (define report-error-parent-panel
            (make-object vertical-panel%
                         (super get-definitions/interactions-panel-parent)))
          (define res (make-object vertical-panel% report-error-parent-panel))
          res)

        (define/override (make-root-area-container % parent)
          (let* ([s-root (super make-root-area-container
                                vertical-panel%
                                parent)]
                 [r-root (make-object % s-root)])
            r-root))
    
        (super-new)))
    
    (drracket:get/extend:extend-unit-frame unit-frame-mixin #f)))

rfindler added a commit to racket/drracket that referenced this issue Apr 23, 2017

@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler Apr 23, 2017

Member

You're absolutely right that that code was useless. I've removed it.

Member

rfindler commented Apr 23, 2017

You're absolutely right that that code was useless. I've removed it.

@Wanghattan

This comment has been minimized.

Show comment
Hide comment
@Wanghattan

Wanghattan Apr 23, 2017

Disabling Check Syntax tool did not help.

I have to correct my self from the previous post;
"Notice that I don't write anything the second time and same thing happens."
Seems like I actually did write something.

I've now run DrRacket for about ten minutes, without crashing, but also without writing anything. Seems like as soon as I write something in, it crashes.

If you guys need any testing I can help out.

Wanghattan commented Apr 23, 2017

Disabling Check Syntax tool did not help.

I have to correct my self from the previous post;
"Notice that I don't write anything the second time and same thing happens."
Seems like I actually did write something.

I've now run DrRacket for about ten minutes, without crashing, but also without writing anything. Seems like as soon as I write something in, it crashes.

If you guys need any testing I can help out.

@Wanghattan

This comment has been minimized.

Show comment
Hide comment
@Wanghattan

Wanghattan Apr 23, 2017

Seems like it's not crashing on The Interactions Window (REPL). Crashing only when I write in the upper textbox.

Wanghattan commented Apr 23, 2017

Seems like it's not crashing on The Interactions Window (REPL). Crashing only when I write in the upper textbox.

@tarc

This comment has been minimized.

Show comment
Hide comment
@tarc

tarc Apr 23, 2017

Skipping syntax check as @mflatt suggested avoids the crash for me.

tarc commented Apr 23, 2017

Skipping syntax check as @mflatt suggested avoids the crash for me.

@7thwave

This comment has been minimized.

Show comment
Hide comment
@7thwave

7thwave Apr 23, 2017

Skipping the syntax check also works for me.

The easiest way I've found to reproduce is simply clicking back and forth between the definitions window and the interactive window a few times.

7thwave commented Apr 23, 2017

Skipping the syntax check also works for me.

The easiest way I've found to reproduce is simply clicking back and forth between the definitions window and the interactive window a few times.

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Apr 23, 2017

Member

Well, I can still crash the OS by using "Touch" input mode in the Remote Desktop app, as opposed to "Mouse" input mode. Between that and @Wanghattan's experience, it seems the current workaround isn't enough.

Member

mflatt commented Apr 23, 2017

Well, I can still crash the OS by using "Touch" input mode in the Remote Desktop app, as opposed to "Mouse" input mode. Between that and @Wanghattan's experience, it seems the current workaround isn't enough.

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Apr 23, 2017

Member

Here's a program that blue-screens as soon as I move my regular mouse (no Remote Desktop needed) into the window.

I had tried this yesterday, but I only went up to 16. A depth of 32 appears to be the minimum value that triggers the blue screen.

#lang racket/base
(require racket/class
	 racket/gui)

(define f (new frame%
	       [label "Test"]
	       [width 600]
	       [height 400]))

(define p
  (for/fold ([p f]) ([i (in-range 32)])
     (new vertical-panel% [parent p])))

(void
 (new editor-canvas%
      [parent p]
      [editor (new text%)]))

(send f show #t)
Member

mflatt commented Apr 23, 2017

Here's a program that blue-screens as soon as I move my regular mouse (no Remote Desktop needed) into the window.

I had tried this yesterday, but I only went up to 16. A depth of 32 appears to be the minimum value that triggers the blue screen.

#lang racket/base
(require racket/class
	 racket/gui)

(define f (new frame%
	       [label "Test"]
	       [width 600]
	       [height 400]))

(define p
  (for/fold ([p f]) ([i (in-range 32)])
     (new vertical-panel% [parent p])))

(void
 (new editor-canvas%
      [parent p]
      [editor (new text%)]))

(send f show #t)

stamourv added a commit to racket/drracket that referenced this issue Apr 23, 2017

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Apr 27, 2017

Member

An update: Racket version 6.9 will ship with the workaround that we have, which reduces the OS crash for many of you. It's not a complete workaround; I think it just makes DrRacket less likely to trip over the bug.

The root problem appears an OS bug, and there appears to be no Racket bug involved. I've written a one-page C program that tends to blue-screen Windows 10 Creators Update (and not earlier version of Windows) independent of Racket. A member of the Windows group at Microsoft has been able to replicate the crash using that program. So, there's some hope that the OS will get fixed – but no promises.

Member

mflatt commented Apr 27, 2017

An update: Racket version 6.9 will ship with the workaround that we have, which reduces the OS crash for many of you. It's not a complete workaround; I think it just makes DrRacket less likely to trip over the bug.

The root problem appears an OS bug, and there appears to be no Racket bug involved. I've written a one-page C program that tends to blue-screen Windows 10 Creators Update (and not earlier version of Windows) independent of Racket. A member of the Windows group at Microsoft has been able to replicate the crash using that program. So, there's some hope that the OS will get fixed – but no promises.

@Scott-Meyer

This comment has been minimized.

Show comment
Hide comment
@Scott-Meyer

Scott-Meyer May 13, 2017

for me and my brother, right clicking something and selecting Jump to next bound occurrence causes the blue screen 100% of the time.

Scott-Meyer commented May 13, 2017

for me and my brother, right clicking something and selecting Jump to next bound occurrence causes the blue screen 100% of the time.

@rchliu

This comment has been minimized.

Show comment
Hide comment
@rchliu

rchliu May 20, 2017

This is still an issue for me with Racket 6.9 and Windows 10 Creator's Update. Clicking in the definitions window triggers an UNEXPECTED_KERNEL_MODE_TRAP BSOD shortly after.

rchliu commented May 20, 2017

This is still an issue for me with Racket 6.9 and Windows 10 Creator's Update. Clicking in the definitions window triggers an UNEXPECTED_KERNEL_MODE_TRAP BSOD shortly after.

@rallant92

This comment has been minimized.

Show comment
Hide comment
@rallant92

rallant92 May 22, 2017

I'm just checking here if there's been any progress since it remains a significant problem (Racket 6.9 and Windows 10 Creator's Update). It happens with basic usage of DrRacket and the pain is high. Because it's a kernel issue the OS halts and no apps get a chance to save. A large several GB file of the state of memory is saved in an attempt to help.

rallant92 commented May 22, 2017

I'm just checking here if there's been any progress since it remains a significant problem (Racket 6.9 and Windows 10 Creator's Update). It happens with basic usage of DrRacket and the pain is high. Because it's a kernel issue the OS halts and no apps get a chance to save. A large several GB file of the state of memory is saved in an attempt to help.

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt May 22, 2017

Member

I have received a tracking number for the OS bug from Microsoft, but that's all I've heard so far.

Member

mflatt commented May 22, 2017

I have received a tracking number for the OS bug from Microsoft, but that's all I've heard so far.

@itay0421

This comment has been minimized.

Show comment
Hide comment
@itay0421

itay0421 May 24, 2017

this blue screem Happening in my lap top too.
i notice it happend when i scroll with two finger.
very strange!

itay0421 commented May 24, 2017

this blue screem Happening in my lap top too.
i notice it happend when i scroll with two finger.
very strange!

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt May 24, 2017

Member

Just to report back, developers at Microsoft have diagnosed the problem as a stack-overflow bug, and they intend to fix the problem for a future release.

Member

mflatt commented May 24, 2017

Just to report back, developers at Microsoft have diagnosed the problem as a stack-overflow bug, and they intend to fix the problem for a future release.

@jsmaniac

This comment has been minimized.

Show comment
Hide comment
@jsmaniac

jsmaniac May 25, 2017

Contributor

A quick suggestion to people who are impacted by the bug. As a crude and temporary workaround, you can try installing Racket inside a virtual machine. It's obviously sub-optimal, but this should at least allow you to work with Racket without systematically crashing your computer.

  1. Download VirtualBox
  2. Download xubuntu https://xubuntu.org/getxubuntu/ (or any other Linux distribution, this one is lightweight enough).
  3. Install xubuntu in a new virtual machine
  4. Install Racket inside the xubuntu virtual machine
  5. If you take the trouble to configure the "VirtualBox guest additions" on the Linux side you can drag-and-drop files in and out of the VM, otherwise simply send yourself the files you want to work with by e-mail, dropbox or any other file sharing service.

If you have trouble with any of the steps (e.g. due to linux-specific things which you are not used to), feel free to ask on IRC, on the Racket mailing list, by sending me an e-mail (georges dot duperon at-sign gmail dot com) or by replying to this issue.

Hope this helps (a bit, at least)

Contributor

jsmaniac commented May 25, 2017

A quick suggestion to people who are impacted by the bug. As a crude and temporary workaround, you can try installing Racket inside a virtual machine. It's obviously sub-optimal, but this should at least allow you to work with Racket without systematically crashing your computer.

  1. Download VirtualBox
  2. Download xubuntu https://xubuntu.org/getxubuntu/ (or any other Linux distribution, this one is lightweight enough).
  3. Install xubuntu in a new virtual machine
  4. Install Racket inside the xubuntu virtual machine
  5. If you take the trouble to configure the "VirtualBox guest additions" on the Linux side you can drag-and-drop files in and out of the VM, otherwise simply send yourself the files you want to work with by e-mail, dropbox or any other file sharing service.

If you have trouble with any of the steps (e.g. due to linux-specific things which you are not used to), feel free to ask on IRC, on the Racket mailing list, by sending me an e-mail (georges dot duperon at-sign gmail dot com) or by replying to this issue.

Hope this helps (a bit, at least)

@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler May 26, 2017

Member

DrRacket now has about 1/2 as many panels nested in its main window as it has in 6.9. My hope is that this change might make it less likely that DrRacket triggers the bug in Windows and thus is less likely to crash. If anyone wants to give this a try, the snapshot builds here have the change:

https://plt.eecs.northwestern.edu/snapshots/

Member

rfindler commented May 26, 2017

DrRacket now has about 1/2 as many panels nested in its main window as it has in 6.9. My hope is that this change might make it less likely that DrRacket triggers the bug in Windows and thus is less likely to crash. If anyone wants to give this a try, the snapshot builds here have the change:

https://plt.eecs.northwestern.edu/snapshots/

@compox

This comment has been minimized.

Show comment
Hide comment
@compox

compox May 31, 2017

I tried snapshot 6.9.0.5 (Win x64) and installed Windows update KB4020102 first (Win10 Pro with Creators Update) - has been working fine for over 2 hours now, whereas v6.8/6.9 previously went down BSOD lane after a few seconds...we'll see if it stays that way. Fingers crossed. :)

compox commented May 31, 2017

I tried snapshot 6.9.0.5 (Win x64) and installed Windows update KB4020102 first (Win10 Pro with Creators Update) - has been working fine for over 2 hours now, whereas v6.8/6.9 previously went down BSOD lane after a few seconds...we'll see if it stays that way. Fingers crossed. :)

@mflatt mflatt changed the title from Issue to Windows 10 Creators Update blue-screen crash Jun 12, 2017

@sluongng

This comment has been minimized.

Show comment
Hide comment
@sluongng

sluongng Jun 28, 2017

I am getting this also... I use a Surface Pro 4 i7 and I think it has something to do with Dr Racket compiling / running codes

sluongng commented Jun 28, 2017

I am getting this also... I use a Surface Pro 4 i7 and I think it has something to do with Dr Racket compiling / running codes

@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler Jun 28, 2017

Member

@sluongng this is a bug in windows that DrRacket makes more likely to happen than other software does. Please see other comments above for some ideas on how to work around the problem.

Member

rfindler commented Jun 28, 2017

@sluongng this is a bug in windows that DrRacket makes more likely to happen than other software does. Please see other comments above for some ideas on how to work around the problem.

@blerner

This comment has been minimized.

Show comment
Hide comment
@blerner

blerner Oct 23, 2017

@rfindler @mflatt some updates here: some students are running Racket 6.10 on Win10FCU, and are able to load DrRacket, edit files and save them...but not open saved files. This doesn't trigger a BSOD crash, though: DrRacket just becomes completely unresponsive until the OS asks you to kill it.

Might you be able to pull another rabbit out of a hat, and find a workaround for that codepath, too?

blerner commented Oct 23, 2017

@rfindler @mflatt some updates here: some students are running Racket 6.10 on Win10FCU, and are able to load DrRacket, edit files and save them...but not open saved files. This doesn't trigger a BSOD crash, though: DrRacket just becomes completely unresponsive until the OS asks you to kill it.

Might you be able to pull another rabbit out of a hat, and find a workaround for that codepath, too?

@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler Oct 23, 2017

Member

@blerner I think I'd need a bit more help to understand what's going on and I am wondering if you could assist with a little debugging? In particular, if you start DrRacket from a command.com window using this incantation:

racket.exe -l drracket

and then you do the bad thing and then return to the command.com window and hit control-c, we might get a helpful stacktrace.

Member

rfindler commented Oct 23, 2017

@blerner I think I'd need a bit more help to understand what's going on and I am wondering if you could assist with a little debugging? In particular, if you start DrRacket from a command.com window using this incantation:

racket.exe -l drracket

and then you do the bad thing and then return to the command.com window and hit control-c, we might get a helpful stacktrace.

@blerner

This comment has been minimized.

Show comment
Hide comment
@blerner

blerner Oct 23, 2017

I'll ask the affected students to stop by later, and try to get that info for you.

blerner commented Oct 23, 2017

I'll ask the affected students to stop by later, and try to get that info for you.

@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler Oct 23, 2017

Member

Ah. In that case, while you have them, try this as a possible workaround (it will work if the problem is in the open file dialog code (which is where OS interactions have come up quite a bit in the past), but won't if the bug is in DrRacket's "lets open up this file and get things started" code):

racket.exe -l- file.rkt

Or even:

drracket.exe file1.rkt file2.rkt file3.rkt

Worst comes to worst, they coudl install a ubuntu VM (or dual boot) their laptops, I suppose. :(

Member

rfindler commented Oct 23, 2017

Ah. In that case, while you have them, try this as a possible workaround (it will work if the problem is in the open file dialog code (which is where OS interactions have come up quite a bit in the past), but won't if the bug is in DrRacket's "lets open up this file and get things started" code):

racket.exe -l- file.rkt

Or even:

drracket.exe file1.rkt file2.rkt file3.rkt

Worst comes to worst, they coudl install a ubuntu VM (or dual boot) their laptops, I suppose. :(

@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler Oct 23, 2017

Member

Maybe this is relevant? #1856

Member

rfindler commented Oct 23, 2017

Maybe this is relevant? #1856

@TheBeavster

This comment has been minimized.

Show comment
Hide comment
@TheBeavster

TheBeavster Oct 23, 2017

@blerner I was having the same issue. As @rfindler just said, see #1856 . Get them to move the files to a local folder for now.

TheBeavster commented Oct 23, 2017

@blerner I was having the same issue. As @rfindler just said, see #1856 . Get them to move the files to a local folder for now.

@blerner

This comment has been minimized.

Show comment
Hide comment
@blerner

blerner Oct 23, 2017

Correction -- the student was indeed using OneDrive. Sigh. More details below.

blerner commented Oct 23, 2017

Correction -- the student was indeed using OneDrive. Sigh. More details below.

@blerner

This comment has been minimized.

Show comment
Hide comment
@blerner

blerner Oct 23, 2017

Reproduction steps:

  1. Launching DrRacket directly, it loads through the splash screen into the main window successfully. Going to the open dialog and loading a file hangs DrRacket completely. Force-quit.
  2. Using the command window to launch "C:\Program Files\Racket\racket.exe" -l drracket loads successfully to the main window, then opening a file hangs, and pressing ctrl+C in the command window does nothing at all. Looking at the stack trace in Process Explorer seems ot show that the main thread of DrRacket is hung at address racket.exe+0x1500, but I don't have symbol information for you.
  3. Trying "C:\Program Files\Racket\racket.exe" -l- "C:\Users\studentname\OneDrive\Documents\NEU\Classes\CS 2500-2501\Problem Sets\problemset2a.rkt" dies with error: require: bad module path '(lib "that whole long string") derived from command line argument: that whole long string
  4. Finally, trying "C:\Program Files\Racket\DrRacket.exe" "that whole long path" hangs on the splash screen right after showing the clock icon.
  5. Copying the file out of the OneDrive directory into a local directory and retrying "C:\Program Files\Racket\Racket.exe" -l- problemset2a.rkt dies with
default-load-handler: cannot open module file
  module path: (lib "problemset2a.rkt")
  path: c:\Program Files\Racket\share\pkgs\pconvert-lib\mzlib\problemset2a.rkt
  system error: The system cannot find the file specified.; errid=2
  1. Trying "C:\Program Files\Racket\DrRacket.exe" problemset2a.rkt from a local directory worked just fine.

blerner commented Oct 23, 2017

Reproduction steps:

  1. Launching DrRacket directly, it loads through the splash screen into the main window successfully. Going to the open dialog and loading a file hangs DrRacket completely. Force-quit.
  2. Using the command window to launch "C:\Program Files\Racket\racket.exe" -l drracket loads successfully to the main window, then opening a file hangs, and pressing ctrl+C in the command window does nothing at all. Looking at the stack trace in Process Explorer seems ot show that the main thread of DrRacket is hung at address racket.exe+0x1500, but I don't have symbol information for you.
  3. Trying "C:\Program Files\Racket\racket.exe" -l- "C:\Users\studentname\OneDrive\Documents\NEU\Classes\CS 2500-2501\Problem Sets\problemset2a.rkt" dies with error: require: bad module path '(lib "that whole long string") derived from command line argument: that whole long string
  4. Finally, trying "C:\Program Files\Racket\DrRacket.exe" "that whole long path" hangs on the splash screen right after showing the clock icon.
  5. Copying the file out of the OneDrive directory into a local directory and retrying "C:\Program Files\Racket\Racket.exe" -l- problemset2a.rkt dies with
default-load-handler: cannot open module file
  module path: (lib "problemset2a.rkt")
  path: c:\Program Files\Racket\share\pkgs\pconvert-lib\mzlib\problemset2a.rkt
  system error: The system cannot find the file specified.; errid=2
  1. Trying "C:\Program Files\Racket\DrRacket.exe" problemset2a.rkt from a local directory worked just fine.
@rfindler

This comment has been minimized.

Show comment
Hide comment
@rfindler

rfindler Oct 23, 2017

Member
Member

rfindler commented Oct 23, 2017

@blerner

This comment has been minimized.

Show comment
Hide comment
@blerner

blerner Oct 24, 2017

blerner commented Oct 24, 2017

@blerner

This comment has been minimized.

Show comment
Hide comment
@blerner

blerner Oct 24, 2017

blerner commented Oct 24, 2017

@mflatt

This comment has been minimized.

Show comment
Hide comment
@mflatt

mflatt Oct 24, 2017

Member

I've now installed Fall Creators Update, and I can replicate the problem with OneDrive paths. Hopefully, fixing that will help with other things.

The problem is that the OneDrive folder in Win10FCU is a reparse point that claims to point back to itself – analogous to a symbolic-link cycle. Racket doesn't handle that cycle gracefully.

I'll work on a repair.

Member

mflatt commented Oct 24, 2017

I've now installed Fall Creators Update, and I can replicate the problem with OneDrive paths. Hopefully, fixing that will help with other things.

The problem is that the OneDrive folder in Win10FCU is a reparse point that claims to point back to itself – analogous to a symbolic-link cycle. Racket doesn't handle that cycle gracefully.

I'll work on a repair.

mflatt added a commit that referenced this issue Oct 24, 2017

Windows: avoid loop on reparse-point cycles
In Windows 10 Fall Creators Update, a OneDrive mount looks to Racket like
a reparse point that refers to itself. Make Racket stop trying to resolve
the path further in that case.

Relevant to #1671

stamourv added a commit that referenced this issue Oct 27, 2017

Windows: avoid loop on reparse-point cycles
In Windows 10 Fall Creators Update, a OneDrive mount looks to Racket like
a reparse point that refers to itself. Make Racket stop trying to resolve
the path further in that case.

Relevant to #1671

(cherry picked from commit 22e8af3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment