Fix stacktrace panic
According to https://golang.org/src/runtime/symtab.go?s=3423:3455#L94 It is possibile that runtime.FuncForPC() returns nil, don't know how but I do met this problem when some kernel config problems cause `p.createNetworkInterfaces` return error. panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0] goroutine 74 [running]: github_com_docker_libcontainer_stacktrace.NewFrame /go/src/github.com/docker/docker/vendor/src/github.com/docker/libcontainer/stacktrace/frame.go:12 github_com_docker_libcontainer_stacktrace.Capture /go/src/github.com/docker/docker/vendor/src/github.com/docker/libcontainer/stacktrace/capture.go:18 libcontainer.newSystemError /go/src/github.com/docker/docker/vendor/src/github.com/docker/libcontainer/generic_error.go:48 github_com_docker_libcontainer.start.pN42_github_com_docker_libcontainer.initProcess /go/src/github.com/docker/docker/vendor/src/github.com/docker/libcontainer/process_linux.go:177 github_com_docker_libcontainer.Start.pN45_github_com_docker_libcontainer.linuxContainer /go/src/github.com/docker/docker/vendor/src/github.com/docker/libcontainer/container_linux.go:102 github_com_docker_docker_daemon_execdriver_native.Run.pN56_github_com_docker_docker_daemon_execdriver_native.driver /go/src/github.com/docker/docker/.gopath/src/github.com/docker/docker/daemon/execdriver/native/driver.go:149 github_com_docker_docker_daemon.Run.pN38_github_com_docker_docker_daemon.Daemon /go/src/github.com/docker/docker/.gopath/src/github.com/docker/docker/daemon/daemon.go:1007 github_com_docker_docker_daemon.Start.pN48_github_com_docker_docker_daemon.containerMonitor /go/src/github.com/docker/docker/.gopath/src/github.com/docker/docker/daemon/monitor.go:138 promise.$nested0 /go/src/github.com/docker/docker/.gopath/src/github.com/docker/docker/pkg/promise/promise.go:8 created by github_com_docker_docker_pkg_promise.Go /go/src/github.com/docker/docker/.gopath/src/github.com/docker/docker/pkg/promise/promise.go:7 Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
This commit is contained in:
parent
64c5e5193f
commit
12fd655de4
|
@ -9,6 +9,9 @@ import (
|
|||
// NewFrame returns a new stack frame for the provided information
|
||||
func NewFrame(pc uintptr, file string, line int) Frame {
|
||||
fn := runtime.FuncForPC(pc)
|
||||
if fn == nil {
|
||||
return Frame{}
|
||||
}
|
||||
pack, name := parseFunctionName(fn.Name())
|
||||
return Frame{
|
||||
Line: line,
|
||||
|
|
Loading…
Reference in New Issue