To reproduce, with current trunk:
1. Have an instance ready somewhere (e.g. EC2) to use with the manual provider.
2. include "logging-config: <root>=DEBUG" in the environment section in environments.yaml. Mine looked like:
manual-ec2: type: manual bootstrap-host: blah-blah.us-west-2.compute.amazonaws.com bootstrap-user: ubuntu logging-config: <root>=DEBUG
- juju bootstrap --upload-tools
SSH to the bootstrap node and you'll see a panic along the lines of:
panic: interface conversion: interface is float64, not int
goroutine 160 [running]: runtime.panic(0xdfeb40, 0xc21033e100) /usr/lib/go/src/pkg/runtime/panic.c:266 +0xb6 github.com/juju/juju/provider/manual.(*environConfig).storageAddr(0xc2101baef0, 0xc20ce0, 0xc2101910f0) /home/menno/go/src/github.com/juju/juju/provider/manual/config.go:73 +0xe3 github.com/juju/juju/provider/manual.(*manualEnviron).SetConfig(0xc210351540, 0xc2101b1770, 0x0, 0x0) /home/menno/go/src/github.com/juju/juju/provider/manual/environ.go:190 +0x627 github.com/juju/juju/provider/manual.manualProvider.open(0xc2101b8b10, 0xc2101b8b10, 0xc2101b8b00, 0x0, 0x0) /home/menno/go/src/github.com/juju/juju/provider/manual/provider.go:84 +0x63 github.com/juju/juju/provider/manual.manualProvider.Open(0xc2101b1770, 0xf57b60, 0x4, 0xc21018f3d0, 0x6) /home/menno/go/src/github.com/juju/juju/provider/manual/provider.go:78 +0xc1 github.com/juju/juju/provider/manual.manualProvider.Open·i(0x10, 0xc2101b1770, 0x7f9f1d44cf48, 0x10, 0x0, ...) /home/menno/go/src/github.com/juju/juju/provider/manual/config.go:1 +0x34 github.com/juju/juju/environs.New(0xc2101b1770, 0xc2101b1770, 0x0, 0x0, 0xc200000001) /home/menno/go/src/github.com/juju/juju/environs/open.go:165 +0x8e github.com/juju/juju/worker.WaitForEnviron(0x7f9f1d45f860, 0xc2102e7f50, 0x7f9f1d46b4f0, 0xc210151180, 0xc2102f5900, ...) /home/menno/go/src/github.com/juju/juju/worker/environ.go:52 +0x1cb github.com/juju/juju/worker/provisioner.(*environProvisioner).loop(0xc21023ab00, 0x0, 0x0) /home/menno/go/src/github.com/juju/juju/worker/provisioner/provisioner.go:158 +0x191 github.com/juju/juju/worker/provisioner.func·002() /home/menno/go/src/github.com/juju/juju/worker/provisioner/provisioner.go:144 +0x59 created by github.com/juju/juju/worker/provisioner.NewEnvironProvisioner /home/menno/go/src/github.com/juju/juju/worker/provisioner/provisioner.go:145 +0x191
Somehow the storage port is ending up a float where an int is expected. There are tests around this but they obviously don't cover this case. I haven't figured out how the float value makes it in.
I will attach the full machine-0.log.
To reproduce, with current trunk:
1. Have an instance ready somewhere (e.g. EC2) to use with the manual provider.
2. include "logging-config: <root>=DEBUG" in the environment section in environments.yaml. Mine looked like:
manual-ec2: us-west- 2.compute. amazonaws. com
type: manual
bootstrap-host: blah-blah.
bootstrap-user: ubuntu
logging-config: <root>=DEBUG
- juju bootstrap --upload-tools
SSH to the bootstrap node and you'll see a panic along the lines of:
panic: interface conversion: interface is float64, not int
goroutine 160 [running]: panic(0xdfeb40, 0xc21033e100)
/usr/lib/ go/src/ pkg/runtime/ panic.c: 266 +0xb6 com/juju/ juju/provider/ manual. (*environConfig ).storageAddr( 0xc2101baef0, 0xc20ce0, 0xc2101910f0)
/home/ menno/go/ src/github. com/juju/ juju/provider/ manual/ config. go:73 +0xe3 com/juju/ juju/provider/ manual. (*manualEnviron ).SetConfig( 0xc210351540, 0xc2101b1770, 0x0, 0x0)
/home/ menno/go/ src/github. com/juju/ juju/provider/ manual/ environ. go:190 +0x627 com/juju/ juju/provider/ manual. manualProvider. open(0xc2101b8b 10, 0xc2101b8b10, 0xc2101b8b00, 0x0, 0x0)
/home/ menno/go/ src/github. com/juju/ juju/provider/ manual/ provider. go:84 +0x63 com/juju/ juju/provider/ manual. manualProvider. Open(0xc2101b17 70, 0xf57b60, 0x4, 0xc21018f3d0, 0x6)
/home/ menno/go/ src/github. com/juju/ juju/provider/ manual/ provider. go:78 +0xc1 com/juju/ juju/provider/ manual. manualProvider. Open·i( 0x10, 0xc2101b1770, 0x7f9f1d44cf48, 0x10, 0x0, ...)
/home/ menno/go/ src/github. com/juju/ juju/provider/ manual/ config. go:1 +0x34 com/juju/ juju/environs. New(0xc2101b177 0, 0xc2101b1770, 0x0, 0x0, 0xc200000001)
/home/ menno/go/ src/github. com/juju/ juju/environs/ open.go: 165 +0x8e com/juju/ juju/worker. WaitForEnviron( 0x7f9f1d45f860, 0xc2102e7f50, 0x7f9f1d46b4f0, 0xc210151180, 0xc2102f5900, ...)
/home/ menno/go/ src/github. com/juju/ juju/worker/ environ. go:52 +0x1cb com/juju/ juju/worker/ provisioner. (*environProvis ioner). loop(0xc21023ab 00, 0x0, 0x0)
/home/ menno/go/ src/github. com/juju/ juju/worker/ provisioner/ provisioner. go:158 +0x191 com/juju/ juju/worker/ provisioner. func·002( )
/home/ menno/go/ src/github. com/juju/ juju/worker/ provisioner/ provisioner. go:144 +0x59 com/juju/ juju/worker/ provisioner. NewEnvironProvi sioner
/home/ menno/go/ src/github. com/juju/ juju/worker/ provisioner/ provisioner. go:145 +0x191
runtime.
github.
github.
github.
github.
github.
github.
github.
github.
github.
created by github.
Somehow the storage port is ending up a float where an int is expected. There are tests around this but they obviously don't cover this case. I haven't figured out how the float value makes it in.
I will attach the full machine-0.log.