I have a juju state server (the bootstrap machine) that will not start the API service that listens on port 17070. I believe this is because of bug: https://bugs.launchpad.net/juju-core/+bug/1434680

My juju client has been upgraded to juju 1.22.1 and so should have the fix. However it cannot connect to the state server to do anything (e.g. juju status just timesout).

How do I go about upgrading jujud on the state server without having to destroy/re-bootstrap the whole environment? This is a running, in use environment.

More detail
Substrate = KVM virtual machine running Ubuntu 14.04.2. Prior to juju client upgrade, juju client was 1.22.0 and stateserver/machine-0 was 1.22.0. After juju client upgrade, juju client is 1.22.1and stateserver/machine-0 is still 1.22.0.

stateserver/machine-0 log show:

2015-04-15 13:42:20 DEBUG juju.mongo open.go:122 TLS handshake failed: x509: certificate is valid for localhost, juju-apiserver, cloud-node-03.maas, not juju-mongodb 
2015-04-15 13:42:20 INFO juju.worker runner.go:261 start "api" 
2015-04-15 13:42:20 INFO juju.api apiclient.go:252 dialing "wss://localhost:17070/" 
2015-04-15 13:42:20 INFO juju.api apiclient.go:260 error dialing "wss://localhost:17070/": websocket.Dial wss://localhost:17070/: dial tcp 127.0.0.1:17070: connection refused
2015-04-15 13:42:20 ERROR juju.worker runner.go:219 exited "api": unable to connect to "wss://localhost:17070/" 
2015-04-15 13:42:20 INFO juju.worker runner.go:253 restarting "api" in 3s

This loops round ... and round ... and round. So there's nothing listening on 17070.

/var/log/upstart only contains juju-db.log* files, all with content:

note: noprealloc may hurt performance in many applications
using syslog ident: mongod.37017
share|improve this question
    
Could you provide more information about your environment? What substrate is this? What version was there previous? Links to any logs from the stateserver/machine-0 ? – Marco Ceppi Apr 15 '15 at 13:24
    
Substrate = KVM virtual machine running Ubuntu 14.04.2. Prior to juju client upgrade, juju client was 1.22.0 and stateserver/machine-0 was 1.22.0. After juju client upgrade, juju client is 1.22.1and stateserver/machine-0 is still 1.22.0. – Andrew Love Apr 15 '15 at 13:41
    
stateserver/machine-0 log show: 2015-04-15 13:42:20 DEBUG juju.mongo open.go:122 TLS handshake failed: x509: certificate is valid for localhost, juju-apiserver, cloud-node-03.maas, not juju-mongodb 2015-04-15 13:42:20 INFO juju.worker runner.go:261 start "api" 2015-04-15 13:42:20 INFO juju.api apiclient.go:252 dialing "wss://localhost:17070/" 2015-04-15 13:42:20 INFO juju.api apiclient.go:260 error dialing "wss://localhost:17070/": websocket.Dial wss://localhost:17070/: dial tcp 127.0.0.1:17070: connection refused ... – Andrew Love Apr 15 '15 at 13:43
    
2015-04-15 13:42:20 ERROR juju.worker runner.go:219 exited "api": unable to connect to "wss://localhost:17070/" 2015-04-15 13:42:20 INFO juju.worker runner.go:253 restarting "api" in 3s – Andrew Love Apr 15 '15 at 13:44
    
This loops round ... and round ... and round. So there's nothing listening on 17070. – Andrew Love Apr 15 '15 at 13:46

You could try juju upgrade-juju (see juju help upgrade-juju), but you need to be careful with the versions. I believe juju upgrades are only supported from one version to the next, without jumping versions.

share|improve this answer
    
I did try this but if I use the -v --debug flags I can see that it suffers from the same connectivity problem. I.e. without the API service running on the state server there is nothing for the juju upgrade-juju command to connect to. Its a catch 22 situation. – Andrew Love Apr 15 '15 at 13:34
    
Ok, you will need to add some logs to this question so we can see what is really going on. Sorry I missed your point about the API not running, of course upgrade-juju won't work then. – andreas Apr 15 '15 at 13:37

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.