cannot destroy-environment with 1.17.4 of a trunk bootstrapped env "ftp-proxy"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
juju-core |
Fix Released
|
Critical
|
Tim Penhey |
Bug Description
I just bootstrapped with Juju trunk, and then tried to destroy-environment with 1.17.4:
$ juju destroy-environment amz-jam
ERROR empty apt-https-proxy in environment configuration
$ juju destroy-environment amz-jam --force
ERROR empty ftp-proxy in environment configuration
This may not actually be Critical, but it seems bad that we would break tool compatibility for something as important as "destroy-
It is possible that 1.17.4 is just complaining because it sees an empty string, and it would be fine if we just didn't have the field.
Could we just omit empty fields?
This has much bigger implications that we won't be able to use "juju-1.16 destroy-
steps to reproduce:
go install launchpad.
$GOPATH/bin/juju bootstrap -e local
/usr/bin/juju destroy-environment local
ERROR empty apt-https-proxy in environment configuration
Related branches
- Juju Engineering: Pending requested
-
Diff: 85 lines (+24/-27)2 files modifiedenvirons/config/config.go (+24/-20)
environs/config/config_test.go (+0/-7)
description: | updated |
Changed in juju-core: | |
milestone: | 1.17.5 → 1.18.0 |
Changed in juju-core: | |
assignee: | nobody → Tim Penhey (thumper) |
status: | Triaged → In Progress |
Changed in juju-core: | |
status: | In Progress → Fix Committed |
milestone: | 1.18.0 → 1.17.5 |
Changed in juju-core: | |
status: | Fix Committed → Fix Released |
Note I just can "juju-1.17.4 status" and it gave a Panic with traceback:
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x534ff1]
goroutine 9 [running]: panic(0xc30780, 0x18626e8) go/src/ pkg/runtime/ panic.c: 266 +0xb6 net/juju- core/environs/ config. (*Config) .mustString( 0x0, 0xd5fee0, 0x4, 0xc210067858, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/environs/ config/ config. go:382 +0x31 net/juju- core/environs/ config. (*Config) .Type(0x0, 0xc210067840, 0x42f67f) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/environs/ config/ config. go:402 +0x3b net/juju- core/environs. New(0x0, 0xc210118600, 0x0, 0x7f05c92b5e01, 0xc21012a150) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/environs/ open.go: 142 +0x27 net/juju- core/juju. apiConfigConnec t(0x7f05c92be1a 8, 0xc21008c620, 0xc2100fc860, 0x7fff6721e28c, 0x7, ...) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/juju/ api.go: 268 +0x108 net/juju- core/juju. func·003( 0xc210118600, 0x0, 0x0, 0x0, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/juju/ api.go: 175 +0x5f net/juju- core/utils/ parallel. func·005( ) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/utils/ parallel/ try.go: 135 +0x41 net/juju- core/utils/ parallel. (*Try). loop buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/utils/ parallel/ try.go: 86 +0x9f
runtime.
/usr/lib/
launchpad.
/build/
launchpad.
/build/
launchpad.
/build/
launchpad.
/build/
launchpad.
/build/
launchpad.
/build/
created by launchpad.
/build/
goroutine 1 [chan receive]: net/tomb. (*Tomb) .Wait(0xc21008c 460, 0xc2100fd360, 0xc21009bd00) buildd/ juju-core- 1.17.4/ src/launchpad. net/tomb/ tomb.go: 110 +0x42 net/juju- core/utils/ parallel. (*Try). Result( 0xc21008c460, 0xc2100ff480, 0x0, 0x0, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/utils/ parallel/ try.go: 192 +0x2e net/juju- core/juju. newAPIFromName( 0x7fff6721e28c, 0x7, 0x7f05c92bdf98, 0xc2100eb280, 0x0, ...) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/juju/ api.go: 178 +0x38b net/juju- core/juju. newAPIClient( 0x7fff6721e28c, 0x7, 0xc2100c5c40, 0x0, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/juju/ api.go: 108 +0x89 net/juju- core/juju. NewAPIClientFro mName(0x7fff672 1e28c, 0x7, 0x0, 0x0, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/juju/ api.go: 86 +0x31 StatusCommand) .Run(0xc2100d99 c0, 0xc2100d9dc0, 0x0, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/cmd/ juju/status. go:86 +0xb7 per.Run( 0x7f05c92bcb68, 0xc2100d99c0, 0xc2100d9dc0, 0x0, 0x477325) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/cmd/ juju/main. go:151 +0x48 envCmdWrapper) .Run(0xc2100a0d f0, 0xc2100d9dc0, 0x0, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/cmd/ juju/addmachine .go:1 +0x9a net/juju- core/cmd. (*SuperCommand) .Run(0xc2101114 00, 0xc2100d9dc0, 0xc2100d9dc0, 0x0) buildd/ juju-core- 1.17.4/ src/launchpad. net/juju- core/cmd/ supercommand. go:291 +0x323 net/juju- core/cmd. Main(0x7f05c92b dda0, 0xc210111400, 0xc2100d9dc0, 0xc21000a010, 0x3, ...) buildd/ juju-core- 1.17.4/ src/launchpad. net/juj. ..
launchpad.
/build/
launchpad.
/build/
launchpad.
/build/
launchpad.
/build/
launchpad.
/build/
main.(*
/build/
main.envCmdWrap
/build/
main.(*
/build/
launchpad.
/build/
launchpad.
/build/