-
Notifications
You must be signed in to change notification settings - Fork 18k
runtime: incorrect unwind in panicwrap #7491
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
Labels
Milestone
Comments
I am not sure whether it's the same bug, but I've just discovered and fixed memory corruption and memory leak in recursive panic handling. I will send a fix soon. Reproducer is: func main() { func() { defer func() { fmt.Println(recover()) }() var x [8192]byte func(x [8192]byte) { defer func() { if err := recover(); err != nil { panic("1: " + err.(string)) } }() func(x [8192]byte) { defer func() { if err := recover(); err != nil { panic("2: " + err.(string)) } }() panic("bad") }(x) }(x) }() panic("again") } |
CL https://golang.org/cl/135490044 mentions this issue. |
This issue was closed by revision 8473695. Status changed to Fixed. |
wheatman
pushed a commit
to wheatman/go-akaros
that referenced
this issue
Jun 25, 2018
The gp->panicwrap adjustment is just fatally flawed. Now that there is a Panic.argp field, update that instead. That can be done on entry only, so that unwinding doesn't need to worry about undoing anything. The wrappers emit a few more instructions in the prologue but everything else in the system gets much simpler. It also fixes (without trying) a broken test I never checked in. Fixes golang#7491. LGTM=khr R=khr CC=dvyukov, golang-codereviews, iant, r https://golang.org/cl/135490044
wheatman
pushed a commit
to wheatman/go-akaros
that referenced
this issue
Jul 9, 2018
The gp->panicwrap adjustment is just fatally flawed. Now that there is a Panic.argp field, update that instead. That can be done on entry only, so that unwinding doesn't need to worry about undoing anything. The wrappers emit a few more instructions in the prologue but everything else in the system gets much simpler. It also fixes (without trying) a broken test I never checked in. Fixes golang#7491. LGTM=khr R=khr CC=dvyukov, golang-codereviews, iant, r https://golang.org/cl/135490044
This issue was closed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
The text was updated successfully, but these errors were encountered: