Open yogihardi opened 7 years ago
When I tried to run nonfunctional docker-compose file, I got panic and my apps crashed, I can't catch the nil pointer, even with code below:
if err := c.Project.Up(context.Background(), options.Up{}); err != nil { log.Fatal(err) }
error log
panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0 pc=0x4da545] goroutine 18 [running]: panic(0x979a00, 0xc82000a1a0) /usr/local/go/src/runtime/panic.go:464 +0x3e6 github.com/docker/libcompose/docker/service.Convert(0xc820131c00, 0xc820301340, 0x1, 0x1, 0xc820277d20, 0x1, 0x1, 0xc820301430, 0x9, 0x1, ...) /home/yogi/work/src/github.com/docker/libcompose/docker/service/convert.go:232 +0x2a15 github.com/docker/libcompose/docker/service.ConvertToAPI(0xc820131c00, 0xc820301340, 0x1, 0x1, 0xc820277d20, 0x1, 0x1, 0xc820301430, 0x9, 0x1, ...) /home/yogi/work/src/github.com/docker/libcompose/docker/service/convert.go:59 +0x79 github.com/docker/libcompose/docker/service.(*Service).createContainer(0xc82001d130, 0x7f71bc93ca78, 0xc82000a338, 0x7f71bc93ea38, 0xc820110150, 0x0, 0x0, 0x0, 0xc8201f7d00, 0xc82031e860, ...) /home/yogi/work/src/github.com/docker/libcompose/docker/service/service_create.go:28 +0x12b github.com/docker/libcompose/docker/service.(*Service).up(0xc82001d130, 0x7f71bc93ca78, 0xc82000a338, 0xc82031e860, 0x13, 0x1, 0x0, 0x0) /home/yogi/work/src/github.com/docker/libcompose/docker/service/service.go:321 +0x315 github.com/docker/libcompose/docker/service.(*Service).Up(0xc82001d130, 0x7f71bc93ca78, 0xc82000a338, 0x0, 0x0, 0x0) /home/yogi/work/src/github.com/docker/libcompose/docker/service/service.go:242 +0x15a github.com/docker/libcompose/project.(*Project).Up.func1.1(0x7f71bc93cab8, 0xc82001d130, 0x0, 0x0) /home/yogi/work/src/github.com/docker/libcompose/project/project_up.go:17 +0x99 github.com/docker/libcompose/project.(*serviceWrapper).Do(0xc82030d730, 0xc82020d3b0, 0x4, 0x6, 0xc820207f58) /home/yogi/work/src/github.com/docker/libcompose/project/service-wrapper.go:101 +0x202 github.com/docker/libcompose/project.(*Project).Up.func1(0xc82030d730, 0xc82020d3b0) /home/yogi/work/src/github.com/docker/libcompose/project/project_up.go:18 +0xb4 created by github.com/docker/libcompose/project.(*Project).startService /home/yogi/work/src/github.com/docker/libcompose/project/project.go:441 +0xbb0 exit status 2
expecting I think it would be better not panicking and give the error to proper error variable.
panicking
docker compose file
{ "elasticsearch-masters": { "image": "rancher/elasticsearch-conf:v0.4.0", "labels": { "io.rancher.container.hostname_override": "container_name", "io.rancher.sidekicks": "elasticsearch-base-master,elasticsearch-datavolume-masters" } }, "elasticsearch-datavolume-masters": { "labels": { "elasticsearch.datanode.config.version": "0", "io.rancher.container.hostname_override": "container_name", "io.rancher.container.start_once": "true" }, "volumes": [ "/usr/share/elasticsearch/data", "/usr/share/elasticsearch/config" ], "entrypoint": "/bin/true", "image": "elasticsearch:2.2.1" }, "elasticsearch-base-master": { "labels": { "elasticsearch.master.config.version": "0", "io.rancher.container.hostname_override": "container_name" }, "image": "elasticsearch:2.2.1", "net": "container:elasticsearch-masters", "volumes_from": [ "elasticsearch-masters", "elasticsearch-datavolume-masters" ], "entrypoint": [ "/opt/rancher/bin/run.sh" ] }, "elasticsearch-datanodes": { "image": "rancher/elasticsearch-conf:v0.4.0", "labels": { "io.rancher.container.hostname_override": "container_name", "io.rancher.sidekicks": "elasticsearch-base-datanode,elasticsearch-datavolume-datanode", "io.rancher.scheduler.affinity:container_label_ne": "io.rancher.stack_service.name=es2-stack/es2" }, "links": [ "elasticsearch-masters:es-masters" ] }, "elasticsearch-datavolume-datanode": { "labels": { "elasticsearch.datanode.config.version": "0", "io.rancher.container.hostname_override": "container_name", "io.rancher.container.start_once": "true" }, "volumes": [ "/usr/share/elasticsearch/data", "/usr/share/elasticsearch/config" ], "entrypoint": "/bin/true", "image": "elasticsearch:2.2.1" }, "elasticsearch-base-datanode": { "labels": { "elasticsearch.datanode.config.version": "0", "io.rancher.container.hostname_override": "container_name" }, "image": "elasticsearch:2.2.1", "links": [ "elasticsearch-masters:es-masters" ], "entrypoint": [ "/opt/rancher/bin/run.sh" ], "volumes_from": [ "elasticsearch-datanodes", "elasticsearch-datavolume-datanode" ], "net": "container:elasticsearch-datanodes" }, "elasticsearch-clients": { "image": "rancher/elasticsearch-conf:v0.4.0", "labels": { "io.rancher.container.hostname_override": "container_name", "io.rancher.sidekicks": "elasticsearch-base-clients,elasticsearch-datavolume-clients" }, "links": [ "elasticsearch-masters:es-masters" ] }, "elasticsearch-datavolume-clients": { "labels": { "elasticsearch.datanode.config.version": "0", "io.rancher.container.hostname_override": "container_name", "io.rancher.container.start_once": "true" }, "volumes": [ "/usr/share/elasticsearch/data", "/usr/share/elasticsearch/config" ], "entrypoint": "/bin/true", "image": "elasticsearch:2.2.1" }, "elasticsearch-base-clients": { "labels": { "elasticsearch.client.config.version": "0", "io.rancher.container.hostname_override": "container_name" }, "image": "elasticsearch:2.2.1", "volumes_from": [ "elasticsearch-clients", "elasticsearch-datavolume-clients" ], "net": "container:elasticsearch-clients", "entrypoint": [ "/opt/rancher/bin/run.sh" ] }, "kopf": { "image": "rancher/kopf:v0.4.0", "ports": [ "83:83" ], "environment": { "KOPF_SERVER_NAME": "es.dev", "KOPF_ES_SERVERS": "es-clients:9200" }, "labels": { "io.rancher.container.hostname_override": "container_name" }, "links": [ "elasticsearch-clients:es-clients" ] } }
here's details of my machine:
docker version
Client: Version: 17.03.1-ce API version: 1.27 Go version: go1.7.5 Git commit: c6d412e Built: Mon Mar 27 17:14:09 2017 OS/Arch: linux/amd64 Server: Version: 17.03.1-ce API version: 1.27 (minimum version 1.12) Go version: go1.7.5 Git commit: c6d412e Built: Mon Mar 27 17:14:09 2017 OS/Arch: linux/amd64 Experimental: false
docker info
Hi @vdemeester ,
Is there any updates for this bug, maybe patch will available on the next release? thank you
@vdemeester any solution for this?
When I tried to run nonfunctional docker-compose file, I got panic and my apps crashed, I can't catch the nil pointer, even with code below:
error log
expecting I think it would be better not
panicking
and give the error to proper error variable.docker compose file
here's details of my machine:
docker version
docker info