Analysis: The problem is that we're changing the address from Origin "machine" to origin "provider"... the assertion in the code is asserting we're not changing anything... even though we are. I'm not sure why we care where the address is coming from. But certainly, getting the same address from the machine and the provider shouldn't be an error condition. here's the output of some additional logging I added: 2016-06-06 19:03:31 xxxx setAddresses for "machineaddresses" on "3": ["local-machine:127.0.0.1" "local-cloud:192.168.88.129" "local-machine:::1"] Stacktrace: goroutine 5456 [running]: github.com/juju/juju/state.(*Machine).setAddresses(0xc4211fc480, 0xc4208691d0, 0x3, 0x3, 0xc420ef4308, 0x1cb5357, 0x10, 0x0, 0x0) /home/nate/src/github.com/juju/juju/state/machine.go:1350 +0xc3 github.com/juju/juju/state.(*Machine).SetMachineAddresses(0xc4211fc480, 0xc4208691d0, 0x3, 0x3, 0x3, 0x3) /home/nate/src/github.com/juju/juju/state/machine.go:1337 +0xcd github.com/juju/juju/apiserver/machine.(*MachinerAPI).SetMachineAddresses(0xc420dbe370, 0xc4214f6500, 0x1, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0) /home/nate/src/github.com/juju/juju/apiserver/machine/machiner.go:92 +0x3eb reflect.Value.call(0x1c24500, 0xc420dbe370, 0x1e13, 0x1c9dc84, 0x4, 0xc420f5bb20, 0x1, 0x1, 0x18c6f80, 0xc420f5bb20, ...) /home/nate/go/src/reflect/value.go:434 +0x5c9 reflect.Value.Call(0x1c24500, 0xc420dbe370, 0x1e13, 0xc420f5bb20, 0x1, 0x1, 0x1e13, 0x0, 0xc421bb8fa4) /home/nate/go/src/reflect/value.go:302 +0xa4 github.com/juju/juju/rpc/rpcreflect.newMethod.func6(0x1c24500, 0xc420dbe370, 0x16, 0x1a0e100, 0xc420f5b860, 0x199, 0x0, 0xc421bb8e50, 0xe10c75, 0xc421bb8e48, ...) /home/nate/src/github.com/juju/juju/rpc/rpcreflect/type.go:323 +0x100 github.com/juju/juju/apiserver.(*srvCaller).Call(0xc4214de080, 0x0, 0x0, 0x1a0e100, 0xc420f5b860, 0x199, 0x1944160, 0xc4204d1388, 0x1e15448, 0xc421bb8ee8, ...) /home/nate/src/github.com/juju/juju/apiserver/root.go:126 +0xa7 github.com/juju/juju/rpc.(*Conn).runRequest(0xc42076d0e0, 0x2b6cf60, 0xc4214de080, 0x1e12a58, 0x31, 0xc421b37a10, 0x8, 0x1, 0x0, 0x0, ...) /home/nate/src/github.com/juju/juju/rpc/server.go:558 +0xc8 created by github.com/juju/juju/rpc.(*Conn).handleRequest /home/nate/src/github.com/juju/juju/rpc/server.go:490 +0x6c7 xxxx current addresses: local-machine:127.0.0.1 local-cloud:192.168.88.129 local-machine:::1 xxx Running setaddress attempt 0. Ops: []txn.Op{txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"life", Value:bson.D{bson.DocElem{Name:"$ne", Value:2}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"machineaddresses", Value:[]state.address{state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}, state.address{Value:"127.0.0.1", AddressType:"ipv4", Scope:"local-machine", Origin:"machine", SpaceName:""}, state.address{Value:"::1", AddressType:"ipv6", Scope:"local-machine", Origin:"machine", SpaceName:""}}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"", AddressType:"", Scope:"", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"", AddressType:"", Scope:"", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}}}, Remove:false}} 2016-06-06 19:03:50 xxxx setAddresses for "addresses" on "3": ["local-cloud:192.168.88.129"] Stacktrace: goroutine 5846 [running]: github.com/juju/juju/state.(*Machine).setAddresses(0xc421032480, 0xc4214f4a00, 0x1, 0x1, 0xc4201218f0, 0x1ca56fc, 0x9, 0x0, 0x0) /home/nate/src/github.com/juju/juju/state/machine.go:1350 +0xc3 github.com/juju/juju/state.(*Machine).SetProviderAddresses(0xc421032480, 0xc4214f4a00, 0x1, 0x1, 0x1, 0x1) /home/nate/src/github.com/juju/juju/state/machine.go:1305 +0xcd github.com/juju/juju/apiserver/instancepoller.(*InstancePollerAPI).SetProviderAddresses(0xc42028d9d0, 0xc421022780, 0x1, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0) /home/nate/src/github.com/juju/juju/apiserver/instancepoller/instancepoller.go:161 +0x248 reflect.Value.call(0x1bde540, 0xc42028d9d0, 0x1e13, 0x1c9dc84, 0x4, 0xc421b2ce40, 0x1, 0x1, 0x18c6f80, 0xc421b2ce40, ...) /home/nate/go/src/reflect/value.go:434 +0x5c9 reflect.Value.Call(0x1bde540, 0xc42028d9d0, 0x1e13, 0xc421b2ce40, 0x1, 0x1, 0x1e13, 0x0, 0x7009cb) /home/nate/go/src/reflect/value.go:302 +0xa4 github.com/juju/juju/rpc/rpcreflect.newMethod.func6(0x1bde540, 0xc42028d9d0, 0x16, 0x1a0e100, 0xc421b2cd60, 0x199, 0x0, 0xc42141d650, 0xe10c75, 0xc42141d648, ...) /home/nate/src/github.com/juju/juju/rpc/rpcreflect/type.go:323 +0x100 github.com/juju/juju/apiserver.(*srvCaller).Call(0xc420956940, 0x0, 0x0, 0x1a0e100, 0xc421b2cd60, 0x199, 0x0, 0x0, 0xc42141d6a8, 0x0, ...) /home/nate/src/github.com/juju/juju/apiserver/root.go:126 +0xa7 github.com/juju/juju/rpc.(*Conn).runRequest(0xc420192fa0, 0x2b6cf60, 0xc420956940, 0x1e12a58, 0x22f, 0xc4223ad410, 0xe, 0x2, 0x0, 0x0, ...) /home/nate/src/github.com/juju/juju/rpc/server.go:558 +0xc8 created by github.com/juju/juju/rpc.(*Conn).handleRequest /home/nate/src/github.com/juju/juju/rpc/server.go:490 +0x6c7 xxxx current addresses: local-cloud:192.168.88.129 xxx changing address from state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""} to state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""} xxx Running setaddress attempt 0. Ops: []txn.Op{txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"life", Value:bson.D{bson.DocElem{Name:"$ne", Value:2}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"addresses", Value:[]state.address{state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}, Remove:false}} xxx changing address from state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""} to state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""} xxx Running setaddress attempt 1. Ops: []txn.Op{txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"life", Value:bson.D{bson.DocElem{Name:"$ne", Value:2}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"addresses", Value:[]state.address{state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}, Remove:false}} xxx changing address from state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""} to state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""} xxx Running setaddress attempt 2. Ops: []txn.Op{txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"life", Value:bson.D{bson.DocElem{Name:"$ne", Value:2}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"addresses", Value:[]state.address{state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredprivateaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}, Remove:false}, txn.Op{C:"machines", Id:"bfe6a0d7-bf16-45dd-8de8-2e37688eddeb:3", Assert:bson.D{bson.DocElem{Name:"$or", Value:[]bson.D{bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"machine", SpaceName:""}}}, bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:bson.D{bson.DocElem{Name:"$exists", Value:false}}}}}}}, Insert:interface {}(nil), Update:bson.D{bson.DocElem{Name:"$set", Value:bson.D{bson.DocElem{Name:"preferredpublicaddress", Value:state.address{Value:"192.168.88.129", AddressType:"ipv4", Scope:"local-cloud", Origin:"provider", SpaceName:""}}}}}, Remove:false}} 2016-06-06 19:03:50 ERROR juju.worker.instancepoller updater.go:271 cannot set addresses on "3": cannot set addresses of machine 3: state changing too quickly; try again soon