Skip to content

Maybe nil pointer in network allocator #2230

@cyli

Description

@cyli

I saw this exactly once in docker logs on a build of moby/moby master (so it was probably using swarmkit version eb07af5):

Jun 05 17:06:26 ubuntu dockerd[21486]: time="2017-06-05T17:06:26.222068186-07:00" level=debug msg="Calling POST /v1.30/networks/create"
Jun 05 17:06:26 ubuntu dockerd[21486]: time="2017-06-05T17:06:26.222312544-07:00" level=debug msg="form data: {\"Attachable\":false,\"CheckDuplicate\":true,\"ConfigFrom\":null,\"ConfigOnly\":false,\"Driver\":\"overlay\",\"EnableIPv6\":false,\"IPAM\":null,\"Ingress\":false,\"Internal\":false,\"Labels\":null,\"Name\":\"TestInternalLB291dd285-5d02-4ed6-adfb-ab674e888299\",\"Options\":null,\"Scope\":\"\"}"
Jun 05 17:06:26 ubuntu dockerd[21486]: panic: runtime error: invalid memory address or nil pointer dereference
Jun 05 17:06:26 ubuntu dockerd[21486]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x12655b2]
Jun 05 17:06:26 ubuntu dockerd[21486]: goroutine 4680 [running]:
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/allocator.(*Allocator).IsBuiltInNetworkDriver(0x0, 0xc42126f694, 0x7, 0x0)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/allocator/network.go:1077 +0x22
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/controlapi.validateDriver(0xc4214a7560, 0x0, 0x2713b60, 0xc42042fe60, 0x1ab1692, 0xd, 0x0, 0x0)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/controlapi/common.go:114 +0x81
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/controlapi.validateNetworkSpec(0xc421b8cf00, 0x0, 0x2713b60, 0xc42042fe60, 0xc4216c1988, 0xed0e0a)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/controlapi/network.go:95 +0x1b7
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/controlapi.(*Server).CreateNetwork(0xc421097780, 0x7f42e23b1128, 0xc421e42fc0, 0xc422602770, 0x1, 0x1, 0x7f42e23b1128)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/docker/swarmkit/manager/controlapi/network.go:110 +0x58
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/docker/swarmkit/api.(*raftProxyControlServer).CreateNetwork(0xc42037b9a0, 0x7f42e23b1128, 0xc421e42f30, 0xc422602770, 0xc42037b9a0, 0x1aec295, 0xd)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/docker/swarmkit/api/control.pb.go:6423 +0x1bb
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/docker/swarmkit/api._Control_CreateNetwork_Handler.func1(0x7f42e23b1128, 0xc421e42f30, 0x1993940, 0xc422602770, 0xc42270fae0, 0xc420341540, 0xc42126f6a0, 0xc421ce1af8)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/docker/swarmkit/api/control.pb.go:3092 +0x86
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.UnaryServerInterceptor(0x7f42e23b1128, 0xc421e42f30, 0x1993940, 0xc422602770, 0xc4214a75a0, 0xc4214a75c0, 0x0, 0xc421ce1b70, 0x4124a8, 0x50)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:29 +0xa4
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/github.com/docker/swarmkit/api._Control_CreateNetwork_Handler(0x1a778a0, 0xc42037b9a0, 0x7f42e23b1128, 0xc421e42f30, 0xc42270fa90, 0x1b30018, 0x0, 0x0, 0x2761f80, 0x1209)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/github.com/docker/swarmkit/api/control.pb.go:3094 +0x177
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/google.golang.org/grpc.(*Server).processUnaryRPC(0xc420341500, 0x271a860, 0xc4201b6000, 0xc422702d20, 0xc420ac5530, 0x26e8150, 0xc421e42f00, 0x0, 0x0)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/google.golang.org/grpc/server.go:638 +0xb5c
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/google.golang.org/grpc.(*Server).handleStream(0xc420341500, 0x271a860, 0xc4201b6000, 0xc422702d20, 0xc421e42f00)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/google.golang.org/grpc/server.go:796 +0x1261
Jun 05 17:06:26 ubuntu dockerd[21486]: github.com/docker/docker/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc420a44b00, 0xc420341500, 0x271a860, 0xc4201b6000, 0xc422702d20)
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/google.golang.org/grpc/server.go:449 +0xa9
Jun 05 17:06:26 ubuntu dockerd[21486]: created by github.com/docker/docker/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
Jun 05 17:06:26 ubuntu dockerd[21486]:         /go/src/github.com/docker/docker/vendor/google.golang.org/grpc/server.go:450 +0xa1
Jun 05 17:06:26 ubuntu systemd[1]: docker.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jun 05 17:06:26 ubuntu systemd[1]: docker.service: Unit entered failed state.
Jun 05 17:06:26 ubuntu systemd[1]: docker.service: Failed with result 'exit-code'.
Jun 05 17:06:26 ubuntu systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Jun 05 17:06:26 ubuntu systemd[1]: Stopped Docker Application Container Engine.

Maybe in:

func (a *Allocator) IsBuiltInNetworkDriver(name string) bool {
	return a.netCtx.nwkAllocator.IsBuiltInDriver(name)
}

either netCtx or nwkAllocator may benil?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions