-
Notifications
You must be signed in to change notification settings - Fork 674
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
PAGE_FAULT_IN_NONPAGED_AREA with Dokan 0.74 #46
Comments
Whoa, didn't see CCleaner there before. I'll disable it - I wonder what it tried to access? |
It tried to access the volume. If you can do the same again to reproduce the problem, then I would install Ccleaner on my machine :-) |
I don't think it was CCleaner after all, but I can't reproduce this reliably. It doesn't happen on Server 2012 Core (my VM), only on Windows 10. I had exited my filesystem exe but still had a command line open at T:. In Server 2012, doing I also managed to get the BSOD in #26 again but let's solve this one first. |
OK, I might have reproduced it in a strange way.
If it doesn't happen the first time, it may happen the second, and there might be a fair delay before the crash |
can you try with https://github.com/dokan-dev/dokany/wiki/Use%20Mirror%20exemple ? |
@Liryna sorry I hadn't finished writing the comment, I am testing now. Edit: see #46 (comment) |
I am currently working on the .NET wrapper (Win 10) and I probably face the same issue as you. It seems that the sys driver is still alive even if the application is "break" or stopped. The device is like a zombie and does not unmount as it should. In my case, I stop DokanNetMirror during debugging/breakpoint, the Dokan drive will still hang but impossible to access and the system become unstable until crash. |
Yes the driver is still alive. Depending on how many threads you have defined, those will will try to execute your code on different threads. If the keep alive is turned on, the method will be executed successfully and the driver will not unmount. If you are debugging for a long time, driver will tell the system that there are not enough resources. You should never get a blue screen. By the way you could make your DokanError enum as ulong. This would simplify the interface and the communication to driver. No translation between DokanError and NTSTATUS needed, because DokanError is the NTSTATUS. |
@marinkobabic I also changed |
@Liryna |
😣! |
Nobody is forced to move to new version :-) |
About @voltagex first issue with I have to restart the service to make it work again. |
What does all this mean for the error that I am getting?
|
Dokan is using a service to mount and unmount the device. When you enable But when you attach to mirror with windbg, the service become unsuable for a reason (no idea why). This make the driver unable to unmount. The drive stay alive and answer to every call "not enough resources". As @marinkobabic explained in another post, this could be fix by removing the service. See #45 |
Will try to reproduce the issue tomorrow. Service should not be affected. After the mount you can even shutdown the service and all should work properly except the unmount. But like you described above the BSOD happened while debugging and not during the unmount. You can mount and then shutdown the service and start to debug and see if the BSOD still occurs. |
I was unfortunately not able to reproduce the BSOD reported here. What happens in the background and makes the system unstable: It seems like a lot of STATUS_INSUFFICIENT_RESOURCES causes the system to become unstable, because the crash does not happen inside of the dokan library. What should be changed:
@Liryna |
@marinkobabic Are you testing on Win8.1 ? I agree that we could give the ability to the user to set the IRP timeout and ResetTimeout. Otherwise, it seems that every crash reported it is for a Device Name request. Probably this function should never fail ? |
@Liryna KeepAlive was not used in this case. So then we have the next question, why is keep alive an option? Is there a reason to turn it off? |
@marinkobabic hahaha ! exactly ! I thought the same ! If you see no reason also, we should force the KeepAlive . |
@Liryna |
Done. It would be nice to fix this BSOD before beginning the TODO. Like that we will start on a "stable" release. |
Would it be possible to make the timeout configurable per drive via an option of the This would improve the situation for scenarios with hererogeneous Dokan drives - local and networked mounted at the same time. |
@viciousviper |
Any updates on this? |
#55 |
@voltagex https://github.com/dokan-dev/dokany/releases/tag/v0.8.0 |
@Liryna 0.8 RC2 - I still get a BSOD, but it really doesn't look like it was caused by Dokan! Will post another issue just in case |
Fixed and release with #55 and the pre-release 0.8.0. |
Just when I thought it was safe to develop on my laptop again.
I think this was caused when I was sitting at a breakpoint in Visual Studio.
The text was updated successfully, but these errors were encountered: