← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1657130] [NEW] get_data in DataSourceOpenStack.py can time out if metadata service is slow

 

Public bug reported:

cloud-init sometimes times out and fails to fetch metadata in the
OpenStack environment when the Controller node is under high workload.

The default timeout value is 5 seconds and it may be too small in some
cases where the Controller node is too busy to respond to the metadata
request  from the instance in time.

There is a 'timeout' configuration setting, as in...

  datasource:
    OpenStack:
      timeout: 30

...but this value is not used by the get_data method in
cloudinit/sources/DataSourceOpenStack.py, because get_data is called
from cloudinit/sources/__init__.py with no keyword arguments:

                LOG.debug("Seeing if we can get any data from %s", cls)
                s = cls(sys_cfg, distro, paths)
                if s.get_data():
                    myrep.message = "found %s data from %s" % (mode, name)
                    return (s, type_utils.obj_name(cls))

** Affects: cloud-init
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1657130

Title:
  get_data in DataSourceOpenStack.py can time out if metadata service is
  slow

Status in cloud-init:
  New

Bug description:
  cloud-init sometimes times out and fails to fetch metadata in the
  OpenStack environment when the Controller node is under high workload.

  The default timeout value is 5 seconds and it may be too small in some
  cases where the Controller node is too busy to respond to the metadata
  request  from the instance in time.

  There is a 'timeout' configuration setting, as in...

    datasource:
      OpenStack:
        timeout: 30

  ...but this value is not used by the get_data method in
  cloudinit/sources/DataSourceOpenStack.py, because get_data is called
  from cloudinit/sources/__init__.py with no keyword arguments:

                  LOG.debug("Seeing if we can get any data from %s", cls)
                  s = cls(sys_cfg, distro, paths)
                  if s.get_data():
                      myrep.message = "found %s data from %s" % (mode, name)
                      return (s, type_utils.obj_name(cls))

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1657130/+subscriptions


Follow ups