-
Notifications
You must be signed in to change notification settings - Fork 13k
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
Encounter STATUS_STACK_BUFFER_OVERRUN when compiling diesel on windows 10 #72084
Comments
it is plausible if our redzone is not large enough, or if there are places where we forgot to add stack capacity checks. Especially as the default primary stack size got reduced back to sanity… That said, this needs a stacktrace and perhaps a MCVE. |
Also, apparently it can mean many other things too https://devblogs.microsoft.com/oldnewthing/20190108-00/?p=100655 |
I tried to run with RUST_BACKTRACE=1, but it did not show additional information. |
The stacktrace needs to be obtained with a debugger, as this is not a rust panic. EDIT: I’ll try to reproduce myself. |
Thanks for the quick reply~ I did not know if it related to this bug... |
@mati865 They are using the rustc version from a couple of weeks ago (04-25) so it cannot be the stacker PR. @w93163red can you please try with a more recent compiler version? I’m unable to reproduce when building diesel with
with rustc from on 2020-05-09. As for the debugger, you should be able to just copy the failing command (which is shown in the "process did not execute successfully" message) and run it under a debugger of some sort. A debugger available in Visual Studio or |
The latest version also failed. I will try to use x64dbg to show some dump info. |
@nagisa sorry, I should have looked at the date... |
@nagisa I am not familiar with obtaining the stack trace... |
That’s close, but there are a couple of issues:
|
https://devblogs.microsoft.com/oldnewthing/20190108-00/?p=100655
You're not getting any symbols from an That said, since the crash seems to be happening in a system dll, it is possible to get symbols from those although you need a debugger that supports the Windows symbol server stuff and I only know how to do that with Visual Studio's debugger. |
@retep998
|
That is what I would do to obtain a backtrace with full symbols, yes. |
This is almost certainly an OOM abort which is all the more likely on a 32-bit host ( |
My sys info: i7 8700 + 32 GB |
Even though your PC is 64-bit and has lots of memory, you're still using a 32-bit Rust. |
As of couple of days ago That is why I thought it might be related to stack initially (but that cannot be true anymore because the rustc in question was just too old). Also you'll notice that I linked that blog post above already. |
230MB is just the size of the allocation that eventually caused rustc to hit the memory limit for a 32-bit process. At the time this allocation occurred, the process likely already had somewhere around 3.something GB allocated. Please try installing a |
It also has to be able to allocate that 230MB as a single contiguous block. If there's some fragmentation from earlier allocations then it can fail even if there is enough space otherwise. |
Thanks to @retep998 's help, a current workaround is using x64 rustc host to cross-compile 32 bit binary. |
Closing as inactionable on our end. |
When I compile Diesel, I encounter this error:
Meta
The text was updated successfully, but these errors were encountered: