This just hit us as well, and we were not using quantum for networking. It just so happens that the instance was launched with network interfaces on two networks:
+--------------------------------------+-----------------------------+--------+--------------------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+-----------------------------+--------+--------------------------------------------+
| 6f4d6b79-51bb-4455-8b3c-ebbff9fafd2e | juju-canonistack2-machine-0 | ACTIVE | canonistack=10.55.63.119; lcy02=10.55.32.3 |
+--------------------------------------+-----------------------------+--------+--------------------------------------------+
Then juju tried to connect to 10.55.32.3 one, but nothing was listening there. The instance doesn't even have a second interface to grab that ip.
Seems to be this code here in state/api/apiclient.go:
func Open(info *Info, opts DialOpts) (*State, error) {
// TODO Select a random address from info.Addrs
// and only fail when we've tried all the addresses.
// TODO what does "origin" really mean, and is localhost always ok?
cfg, err := websocket.NewConfig("wss://"+info.Addrs[0]+"/", "http://localhost/")
It always grabs the first address, whatever it is.
This just hit us as well, and we were not using quantum for networking. It just so happens that the instance was launched with network interfaces on two networks:
+------ ------- ------- ------- ------- ----+-- ------- ------- ------- ------+ ------- -+----- ------- ------- ------- ------- ------- ----+ ------- ------- ------- ------- ----+-- ------- ------- ------- ------+ ------- -+----- ------- ------- ------- ------- ------- ----+ 51bb-4455- 8b3c-ebbff9fafd 2e | juju-canonistac k2-machine- 0 | ACTIVE | canonistack= 10.55.63. 119; lcy02=10.55.32.3 | ------- ------- ------- ------- ----+-- ------- ------- ------- ------+ ------- -+----- ------- ------- ------- ------- ------- ----+
| ID | Name | Status | Networks |
+------
| 6f4d6b79-
+------
Then juju tried to connect to 10.55.32.3 one, but nothing was listening there. The instance doesn't even have a second interface to grab that ip.
Seems to be this code here in state/api/ apiclient. go: NewConfig( "wss:// "+info. Addrs[0] +"/", "http:// localhost/")
func Open(info *Info, opts DialOpts) (*State, error) {
// TODO Select a random address from info.Addrs
// and only fail when we've tried all the addresses.
// TODO what does "origin" really mean, and is localhost always ok?
cfg, err := websocket.
It always grabs the first address, whatever it is.