metadata service returns empty data with 200 OK
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Eucalyptus |
Fix Released
|
Undecided
|
chris grzegorczyk | ||
cloud-init (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Lucid |
Invalid
|
Undecided
|
Unassigned | ||
Maverick |
Invalid
|
Undecided
|
Unassigned | ||
eucalyptus (Ubuntu) |
Fix Released
|
High
|
Dave Walker | ||
Lucid |
Fix Released
|
High
|
Dave Walker | ||
Maverick |
Fix Released
|
High
|
Dave Walker |
Bug Description
Binary package hint: cloud-init
Release of Ubuntu: Lucid serverAMD64 daily 20100419.1/UEC AMD64 Lucid daily 20100419. Running on the test rig, on lucid-amd64-topo2.
Package Version:
Expected Results: no errors
Actual Results: see attached file.
### Ubuntu SRU Justification ###
IMPACT: The current package in Lucid has an intolerably high failure rate at starting instances, this seems to be due to some instances failing to get assigned a public ip address. This means that the meta service cannot function correctly.
BUG FIX: Platform, QA and upstream worked closely together to identify the issue and through iterations tested proposed fixes, in conjunction with using the QA uec-testing scripts. Once the correct fix was identified, it was committed to upstreams stable branch.
PATCH: New patch, attached below - 30th June 2010
TEST CASE: Fresh installation, start many instances and note the failure rate. This process can be aided with lp:uec-testing-scripts that allows multiple instances to be attempted to start.
REGRESSION POTENTIAL: Low. C de-Avillez has been undertaking multiple QA runs of the patch through it's iterations to the extent that it would be comparable to pre-declaring verification-passed , as he has been testing the same patch from a PPA (ppa:davewalker
tags: | added: patch |
summary: |
- UEC guests sometimes fail on consuming user data + UEC guests sometimes fail on consuming user data (metadata service isn't + ready) |
tags: | added: iso-testing |
summary: |
- UEC guests sometimes fail on consuming user data (metadata service isn't - ready) + metadata service returns empty data with 200 OK |
Changed in eucalyptus (Ubuntu Lucid): | |
milestone: | none → lucid-updates |
tags: | added: patch-forwarded-upstream |
tags: | removed: patch-forwarded-upstream |
tags: | added: patch-forwarded-upstream |
tags: | removed: patch-forwarded-upstream |
Changed in eucalyptus: | |
assignee: | nobody → chris grzegorczyk (chris-grze) |
Changed in eucalyptus (Ubuntu): | |
assignee: | Scott Moser (smoser) → Dave Walker (davewalker) |
Changed in eucalyptus (Ubuntu Lucid): | |
assignee: | Scott Moser (smoser) → Dave Walker (davewalker) |
Changed in eucalyptus: | |
status: | New → Fix Committed |
tags: | added: lucid maverick patch |
tags: | removed: patch |
Changed in eucalyptus: | |
status: | Fix Committed → Fix Released |
ugh.
I'm somewhat baffled on how this can happen.
WARNING:INSTANCE i-39AC0623: File "/usr/lib/ python2. 6/dist- packages/ cloudinit/ DataSourceEc2. py", line 64, in get_instance_id self.metadata[ 'instance- id'])
WARNING:INSTANCE i-39AC0623: return(
That indicates that somehow, the 'metadata' member of self (DataSourceEc2.py) does not have an 'instance-id' field.
That field gets populated in cloudinit/ DataSourceEc2. py's get_data, which does something like:
try: for_metadata_ service( ):
return False
self. userdata_ raw = boto_utils. get_instance_ userdata( self.api_ ver)
self. metadata = boto_utils. get_instance_ metadata( self.api_ ver)
if not self.wait_
return True
self.wait_ for_metadata_ service is an attempt to make sure the metadata service is up before calling boto's get_instance_ userdata and get_instance_ metadata methods to populate the members.
both of get_instance_ userdata and get_instance_ metadata also take precautions to wait on the metadata service. So, it appears that the metadata service was correctly parsed / crawled by boto, and that it did not have an 'instance-id' field .