-
Notifications
You must be signed in to change notification settings - Fork 118
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
Panic when profiling AVX2 implementation #55
Comments
Currently we are unable to reproduce the issue in linux. |
Note, this could also be a go runtime issue since there are some similar issues, such as:
This seems to also happen with Go tip. |
If I increase blockAvx2 stack size to |
I think this is because the For example, if you insert a Large traceback
The runtime has some protections to avoid problems caused by generating tracebacks during signals, but I don't think it can protect against this. I'm reaching the ends of my understanding, but I think the stack contents will be fairly random, and so if you're unlucky enough, you can fool the runtime into walking into some spot that is just right enough to trick it into crashing. |
Just curious, by how much did you increase the stack size to not see the issue? And you are only seeing this in Windows ? |
@fwessels changed:
Note, I'm not certain that it is the proper fix, it might just hide the problem better as a result. Yes, currently only seeing on Windows. We've had a weird crash on Linux as well, however unable to reproduce them -- or confirm that they are caused by sha256-simd. |
Keith Randall mentioned that the issue is caused by playing with SP, not BP. Because the traceback code can't handle variable sized frames. golang/go#43496 (comment) |
@fwessels Do you have the original assembly? It doesn't seem to have been committed here. It would be nice to be able to fix this without rewriting it. I will remove modifications of |
#57 Will remove this code, since it is slower. |
@klauspost I would have to dig real hard to come up with the original assembly code it was based on -- but this seems moot anyways regarding #57, so we will leave it at this |
It seems there's a fairly repeatable panic with this code.
This doesn't seem to happen with other implementation.
Also, you may need to retry it a few times before it crashes.
The text was updated successfully, but these errors were encountered: