-
Notifications
You must be signed in to change notification settings - Fork 18k
runtime: encountering SIGILL in 1.4, 1.4.1 #9728
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
Comments
First, please take a look at https://github.com/golang/go/blob/master/CONTRIBUTING.md, especially "Filing issues." |
It seems the processor jumps to the middle of one instruction. This kind of problem is difficult to diagnose remotely. |
@mikioh: thanks, here's the missing information:
@minux: Thank you; yes, working on a minimum standalone example as we type. |
I'd also like to note that it appears running with -race or -gcflags '-N' (no compiler optimization) results in this issue not occurring. Does -race disable optimization? |
No. -race doesn't disable optimization unless you also pass -gcflags -N. |
Good to know, thank you. |
However the race run time does introduce more calls into functions which On Tue, Feb 3, 2015 at 2:27 AM, Minux Ma notifications@github.com wrote:
|
inlining runs long before racewalk |
But we have lots of code that says if raceEnabled { so if raceEnabled is not false, the function is no longer a leaf. On Tue, Feb 3, 2015 at 6:41 AM, Dmitry Vyukov notifications@github.com
|
well, maybe |
if const { won't be inlined even if const is false. For example, const B = false func G() { func F() { This is a problem of the current inliner implementation, it determines |
Problem solved: I was making improper use of the unsafe module. Closing. |
If possible, can you please describe a bit what is the "improper use of the unsafe package" for future reference, Thanks. |
TBH, I don't know what specifically was wrong with this before, nor why this implementation seems to work. The diff is here: https://github.com/control-center/serviced/pull/1566/files If anyone could elucidate this for me, I'd be obliged. |
On GNU/Linux TIOCGPRGP returns a 4 byte value, so trying to catch it in a [2]byte argument is doomed to fail. |
Much obliged! |
I do not see this issue with 1.2.1.
After compiling and running, I see the following fault:
Inspecting the issue w/ gdb:
Note (bad) @0x510010
I also disassembled with objdump -dS for comparison. Here's the relevant portion:
I don't see 0x510010 here, though, so not sure how to interpret.
Any suggestions for continuing to debug this issue?
The text was updated successfully, but these errors were encountered: