1.25.0: bootstrap failure - WARNING discarding API open error: EOF

Bug #1538303 reported by Larry Michel
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical Juju
Fix Released
High
Cheryl Jennings
juju-core
Fix Released
High
Cheryl Jennings
1.25
Fix Released
High
Cheryl Jennings

Bug Description

We have hit this error multiple times with Juju 1.25.0:

Bootstrapping environment "ci-oil-slave13"
Starting new instance for initial state server
Launching instance
 - /MAAS/api/1.0/nodes/node-9f580cca-c4cd-11e3-824b-00163efc5068/
Installing Juju agent on bootstrap instance
Waiting for address
Attempting to connect to hayward-24.oil:22
Attempting to connect to hayward-24.oil:22
Attempting to connect to 10.245.0.153:22
Warning: Permanently added '10.245.0.153' (ECDSA) to the list of known hosts.
Logging to /var/log/cloud-init-output.log on remote host
Running apt-get update
Running apt-get upgrade
Installing package: curl
Installing package: cpu-checker
Installing package: bridge-utils
Installing package: rsyslog-gnutls
Installing package: cloud-utils
Installing package: cloud-image-utils
Installing package: tmux
Fetching tools: curl -sSfw 'tools from %{url_effective} downloaded: HTTP %{http_code}; time %{time_total}s; size %{size_download} bytes; speed %{speed_download} bytes/s ' --retry 10 -o $bin/tools.tar.gz <[https://streams.canonical.com/juju/tools/releases/juju-1.25.0-trusty-amd64.tgz]>
Bootstrapping Juju machine agent
Starting Juju machine agent (jujud-machine-0)
Bootstrap agent installed
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
Waiting for API to become available
WARNING discarding API open error: EOF
ERROR EOF
2016-01-26 15:07:36,633 [ERROR] oil_ci.juju.client: Calling "juju bootstrap" failed!
2016-01-26 15:07:36,635 [ERROR] oil_ci.cli.api: Deployment failed
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/oil_ci/cli/api.py", line 107, in do_deploy
    rc = deploy.deploy()
  File "/usr/lib/python2.7/dist-packages/oil_ci/deploy/oil_deployer.py", line 213, in deploy
    self._bootstrap()
  File "/usr/lib/python2.7/dist-packages/oil_ci/deploy/oil_deployer.py", line 108, in _bootstrap
    constraints=self.constraints, args=args)
  File "/usr/lib/python2.7/dist-packages/oil_ci/juju/client.py", line 169, in ensure_bootstrap
    raise JujuTestClientException
JujuTestClientException
+ rc=1
+ echo 'Deployment returned: 1'
Deployment returned: 1

Please note that this one looks like bug 1338511 but that one was fix released, so opening a new bug. Unless it's a regression, this would be a new issue.

Tags: oil
Revision history for this message
Larry Michel (lmic) wrote :
Revision history for this message
Cheryl Jennings (cherylj) wrote :

I think what's happening here is that the check in bootstrap where we wait for the API to come up isn't complete. The check will try to make an arbitrary call into the API 60 times, with a one second delay. If the error message received from that call is either that an upgrade is in progress, connection shut down, or EOF, it keeps retrying to make the call.

However, it looks like in the above output, the EOF error is not coming from the API call, but rather from the attempt to open / login to the API, which doesn't have the same check to see if the error returned is one of the three errors above.

I think what we need to do is keep retrying if the call to open / login to the API connection also returns EOF or connection shutdown.

Changed in juju-core:
status: New → Triaged
importance: Undecided → High
milestone: none → 1.25.4
Changed in juju-core:
milestone: 1.25.4 → 2.0-alpha3
Revision history for this message
Cheryl Jennings (cherylj) wrote :
Changed in juju-core:
milestone: 2.0-alpha3 → 2.0-beta3
Changed in juju-core:
assignee: nobody → Cheryl Jennings (cherylj)
Curtis Hovey (sinzui)
Changed in juju-core:
milestone: 2.0-beta3 → 2.0-beta4
Revision history for this message
Cheryl Jennings (cherylj) wrote :
Changed in juju-core:
status: Triaged → In Progress
Changed in juju-core:
status: In Progress → Fix Committed
Curtis Hovey (sinzui)
Changed in juju-core:
status: Fix Committed → Fix Released
affects: juju-core → juju
Changed in juju:
milestone: 2.0-beta4 → none
milestone: none → 2.0-beta4
Changed in juju-core:
assignee: nobody → Cheryl Jennings (cherylj)
importance: Undecided → High
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.