Google Compute Engine (GCE) datasource setting to none after update

Bug #1674861 reported by Fernando J. Cordeiro on 2017-03-22
106
This bug affects 18 people
Affects Status Importance Assigned to Milestone
cloud-init
Medium
Unassigned
cloud-init (Ubuntu)
Medium
Unassigned
Xenial
Medium
Unassigned
Yakkety
Medium
Unassigned

Bug Description

=== Begin SRU Template ===
[Impact]
When running on a Google Compute (GCE),
instances may show a warning on ssh login or in the cloud-init.log file.

This was by design, as we wanted to find places where ds-identify was
not working correctly.

This seems to only occur on older instances. The original reporter
cannot re-create it on a new instance. The reason for the behavior
change is that the new instances have different smbios information.
Presumably this is because the mechanism for launching the new
instances has been changed to include 'Google Compute' in the Product
Name where previously only 'Google' appeard.

[Test Case]
Note, you'd have to have an old instance to actually see this.
So this is not really easy to test the fix.
The test for no regression is easier:

1. Launch an instance on a GCE.
2. enable proposed, upgrade
3. rm -Rf /var/lib/cloud /var/log/cloud*
4. reboot
5. ssh back in, expect to see no warning.

[Regression Potential]
Very low. the change was just to consider an a dmi product serial
number with 'GoogleCloud-*' as a indication that we are running on
Google Compute. That would seem a very low false-positive rate.

[Other Info]

=== End SRU Template ===

The following message appears after login in my Google Cloud VPS:

**************************************************************************
# A new feature in cloud-init identified possible datasources for #
# this system as: #
# ['None'] #
# However, the datasource used was: GCE #
# #
# In the future, cloud-init will only attempt to use datasources that #
# are identified or specifically configured. #
# For more information see #
# https://bugs.launchpad.net/bugs/1669675 #
# #
# If you are seeing this message, please file a bug against #
# cloud-init at #
# https://bugs.launchpad.net/cloud-init/+filebug?field.tags=dsid #
# Make sure to include the cloud provider your instance is #
# running on. #
# #
# After you have filed a bug, you can disable this warning by launching #
# your instance with the cloud-config below, or putting that content #
# into /etc/cloud/cloud.cfg.d/99-warnings.cfg #
# #
# #cloud-config #
# warnings: #
# dsid_missing_source: off #
**************************************************************************

Related branches

Scott Moser (smoser) wrote :

Hi, Thanks for taking the time to file this bug.

Cloud-init attempts to identify compute via the smbios information in /sys/class/dmi/id/product_name. The documentation shows that that field should contain 'Google Compute Engine', and my testing seems to validate that.

can you please collect the following from the system:

  /run/cloud-init/
  /etc/cloud/
  /var/log/cloud-init.log
  dmesg > dmesg.txt
  journalctl -o short-precise > journal.txt
  uname -a

Then, please run:
  sudo /usr/lib/ds-identify --force

And collect the (now updated) files:
  /run/cloud-init/cloud.cfg
  /run/cloud-init/ds-identify.log

After doing so, please set the bug back to 'confirmed'.
Thanks again.

Scott

Changed in cloud-init:
importance: Undecided → Medium
status: New → Incomplete

uname -a
Linux intellogic 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

sudo /usr/lib/ds-identify --force
sudo: /usr/lib/ds-identify: command not found

This bug happened after an apt-get upgrade, which results in a syntax error. After that, I had followed the fix instructions shown here:

https://issuetracker.google.com/issues/35907813

Changed in cloud-init:
status: Incomplete → Confirmed
Scott Moser (smoser) on 2017-03-23
summary: - Cloud-init datasource setting to none after update
+ GCE Cloud-init datasource setting to none after update
summary: - GCE Cloud-init datasource setting to none after update
+ Google Compute Engine (gce) datasource setting to none after update
summary: - Google Compute Engine (gce) datasource setting to none after update
+ Google Compute Engine (GCE) datasource setting to none after update
Scott Moser (smoser) wrote :

Fernando,
Thanks for collecting that info.

Would you mind letting me know how long that instance has been running for?
https://cloud.google.com/compute/docs/instances/managing-instances#use_other_methods says that the product id in smbios should say "Google Compute Engine", but your attached run/cloud-init/ds-identify.log shows:

DMI_PRODUCT_NAME=Google
DMI_SYS_VENDOR=Google
DMI_PRODUCT_SERIAL=GoogleCloud-5522DD7F617DE6A70690608333600C84
DMI_PRODUCT_UUID=5522DD7F-617D-E6A7-0690-608333600C84

An instance I just launched shows:
DMI_PRODUCT_NAME=Google Compute Engine
DMI_SYS_VENDOR=Google
DMI_PRODUCT_SERIAL=GoogleCloud-C8F0385EC6DCE37E336E57450BF0C481
DMI_PRODUCT_UUID=C8F0385E-C6DC-E37E-336E-57450BF0C481

Perhaps we should check the product serial for starting with GoogleCloud also.

Thanks again.

Jon Grimm (jgrimm) wrote :

Ah,

  sudo /usr/lib/ds-identify --force

,should have been:

  sudo /usr/lib/cloud-init/ds-identify --force

#3 Hi Scott,

Instance has been launched about 5 months ago.

Scott Moser (smoser) on 2017-03-27
Changed in cloud-init (Ubuntu):
status: New → In Progress
importance: Undecided → Medium
Scott Moser (smoser) on 2017-03-28
Changed in cloud-init:
status: Confirmed → Fix Committed

In my case serial starts with 'GoogleCloud-' not 'GoogleCompute-' as proposed.

Scott Moser (smoser) wrote :

Fernando,
Sorry... the commit message mentioned 'GoogleCompute' The code uses 'GoogleCloud-'.
So this should be fixed for you in trunk.

Out of sheer curiosity, if you run a new instance, do you see this?

If you're willing to try I'd appreciate knowing what happens if you:
 a.) launch a new instance of Ubuntu 16.04
 b.) cp /run/cloud-init/ds-identify.log ds-identify.log.orig
 c.) sudo add-apt-repository -y ppa:cloud-init-dev/daily
     sudo apt-get update
     sudo apt-get install -qy cloud-init

 d.) reboot
 e.) cp /run/cloud-init/ds-identify.log ds-identify.log.new

Do you see the warning in that case ?
I do not, but I've never seen an instance without 'Google Compute' in the product name.

Thanks.

Wessel van Norel (delgurth) wrote :

I'm also seeing this. I've installed this PPA. Even after installing this PPA I'm getting the logon warning message, but the .new does seem to output something different.

.orig:

[up 9.47s] ds-identify
policy loaded: mode=report report=false found=all maybe=all notfound=enabled
/etc/cloud/cloud.cfg.d/91-gce.cfg set datasource_list: [ GCE, NoCloud, None ]
DMI_PRODUCT_NAME=Google
DMI_SYS_VENDOR=Google
DMI_PRODUCT_SERIAL=GoogleCloud-D322C7E530748941965B3201D708D6EA
DMI_PRODUCT_UUID=D322C7E5-3074-8941-965B-3201D708D6EA
PID_1_PLATFORM=unavailable
FS_LABELS=cloudimg-rootfs
KERNEL_CMDLINE=BOOT_IMAGE=/boot/vmlinuz-4.4.0-71-generic root=UUID=e337c824-614a-4625-b98c-e48a72135196 ro console=ttyS0
VIRT=kvm
UNAME_KERNEL_NAME=Linux
UNAME_KERNEL_RELEASE=4.4.0-71-generic
UNAME_KERNEL_VERSION=#92-Ubuntu SMP Fri Mar 24 12:59:01 UTC 2017
UNAME_MACHINE=x86_64
UNAME_NODENAME=backup03
UNAME_OPERATING_SYSTEM=GNU/Linux
DSNAME=
DSLIST=GCE NoCloud None
MODE=report
ON_FOUND=all
ON_MAYBE=all
ON_NOTFOUND=enabled
pid=499 ppid=490
is_container=false
No ds found [mode=report, notfound=enabled]. Would enable cloud-init [0]
[up 9.71s] returning 0

And .new:

[up 8.86s] ds-identify
policy loaded: mode=report report=false found=all maybe=all notfound=enabled
/etc/cloud/cloud.cfg.d/91-gce.cfg set datasource_list: [ GCE, NoCloud, None ]
DMI_PRODUCT_NAME=Google
DMI_SYS_VENDOR=Google
DMI_PRODUCT_SERIAL=GoogleCloud-D322C7E530748941965B3201D708D6EA
DMI_PRODUCT_UUID=D322C7E5-3074-8941-965B-3201D708D6EA
PID_1_PLATFORM=unavailable
FS_LABELS=cloudimg-rootfs
KERNEL_CMDLINE=BOOT_IMAGE=/boot/vmlinuz-4.4.0-71-generic root=UUID=e337c824-614a-4625-b98c-e48a72135196 ro console=ttyS0
VIRT=kvm
UNAME_KERNEL_NAME=Linux
UNAME_KERNEL_RELEASE=4.4.0-71-generic
UNAME_KERNEL_VERSION=#92-Ubuntu SMP Fri Mar 24 12:59:01 UTC 2017
UNAME_MACHINE=x86_64
UNAME_NODENAME=backup03
UNAME_OPERATING_SYSTEM=GNU/Linux
DSNAME=
DSLIST=GCE NoCloud None
MODE=report
ON_FOUND=all
ON_MAYBE=all
ON_NOTFOUND=enabled
pid=499 ppid=489
is_container=false
check for 'GCE' returned found
Found single datasource: GCE
[up 9.17s] returning 0

Wessel van Norel (delgurth) wrote :

Btw, this was on an upgraded instance, created a while ago. On a new instance I'm not getting this problem, and the DMI_PRODUCT_NAME is indeed "Google Compute Engine".

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cloud-init - 0.7.9-87-gd23543eb-0ubuntu1

---------------
cloud-init (0.7.9-87-gd23543eb-0ubuntu1) zesty; urgency=medium

  * debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
  * New upstream snapshot.
    - net: in netplan renderer delete known image-builtin content.
      (LP: #1675576)
    - doc: correct grammar in capabilities.rst [David Tagatac]
    - ds-identify: fix detecting of maas datasource. (LP: #1677710)
    - netplan: remove debugging prints, add debug logging [Ryan Harper]
    - ds-identify: do not write None twice to datasource_list.
    - support resizing partition and rootfs on system booted without initramfs.
      (LP: #1677376) [Steve Langasek]
    - apt_configure: run only when needed. (LP: #1675185)
    - OpenStack: identify OpenStack by product 'OpenStack Compute'.
      (LP: #1675349)
    - GCE: Search GCE in ds-identify, consider serial number in check.
      (LP: #1674861)
    - Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)

 -- Scott Moser <email address hidden> Thu, 30 Mar 2017 16:46:43 -0400

Changed in cloud-init (Ubuntu):
status: In Progress → Fix Released
Scott Moser (smoser) on 2017-04-03
Changed in cloud-init (Ubuntu Xenial):
status: New → Confirmed
Changed in cloud-init (Ubuntu Yakkety):
status: New → Confirmed
Changed in cloud-init (Ubuntu Xenial):
importance: Undecided → Medium
Changed in cloud-init (Ubuntu Yakkety):
importance: Undecided → Medium
Scott Moser (smoser) on 2017-04-04
description: updated

Hello Fernando, or anyone else affected,

Accepted cloud-init into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-90-g61eb03fe-0ubuntu1~16.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in cloud-init (Ubuntu Yakkety):
status: Confirmed → Fix Committed
tags: added: verification-needed
Brian Murray (brian-murray) wrote :

Hello Fernando, or anyone else affected,

Accepted cloud-init into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-90-g61eb03fe-0ubuntu1~16.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in cloud-init (Ubuntu Xenial):
status: Confirmed → Fix Committed
Scott Moser (smoser) on 2017-04-14
tags: added: verification-done-xenial verification-done-yakkety
removed: verification-needed
Łukasz Zemczak (sil2100) wrote :

I would like to see some information about how the tests have been run and against which packages. As per the SRU procedures, each SRU verification is required to at least outline the steps that have been performed and what results have been recorded. Could you post those in the next comment?

Launchpad Janitor (janitor) wrote :
Download full text (3.4 KiB)

This bug was fixed in the package cloud-init - 0.7.9-90-g61eb03fe-0ubuntu1~16.10.1

---------------
cloud-init (0.7.9-90-g61eb03fe-0ubuntu1~16.10.1) yakkety; urgency=medium

  * debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
  * New upstream snapshot.
    - OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946)
    - Fix bug that resulted in an attempt to rename bonds or vlans.
      (LP: #1669860)
    - tests: update OpenNebula and Digital Ocean to not rely on host
      interfaces.
    - net: in netplan renderer delete known image-builtin content.
      (LP: #1675576)
    - doc: correct grammar in capabilities.rst [David Tagatac]
    - ds-identify: fix detecting of maas datasource. (LP: #1677710)
    - netplan: remove debugging prints, add debug logging [Ryan Harper]
    - ds-identify: do not write None twice to datasource_list.
    - support resizing partition and rootfs on system booted without
      initramfs. [Steve Langasek] (LP: #1677376)
    - apt_configure: run only when needed. (LP: #1675185)
    - OpenStack: identify OpenStack by product 'OpenStack Compute'.
      (LP: #1675349)
    - GCE: Search GCE in ds-identify, consider serial number in check.
      (LP: #1674861)
    - Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
    - Fix filesystem creation when using "partition: auto"
      [Jonathan Ballet] (LP: #1634678)
    - ConfigDrive: support reading config drive data from /config-drive.
      (LP: #1673411)
    - ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
    - test: add running of pylint [Joshua Powers]
    - ds-identify: fix bug where filename expansion was left on.
    - advertise network config v2 support (NETWORK_CONFIG_V2) in features.
    - Bigstep: fix bug when executing in python3. [root]
    - Fix unit test when running in a system deployed with cloud-init.
    - Bounce network interface for Azure when using the built-in path.
      [Brent Baude] (LP: #1674685)
    - cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
    - net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
    - net: add renderers for automatically selecting the renderer.
    - doc: fix config drive doc with regard to unpartitioned disks.
      (LP: #1673818)
    - test: Adding integratiron test for password as list [Joshua Powers]
    - render_network_state: switch arguments around, do not require target
    - support 'loopback' as a device type.
    - Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
    - gitignore: adding doc/rtd_html [Joshua Powers]
    - doc: add instructions for running integration tests via tox.
      [Joshua Powers]
    - test: avoid differences in 'date' output due to daylight savings.
    - Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
    - Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
    - tox: add a citest environment
    - Support chpasswd/list being a list in addition to a string.
      [Sergio Lystopad] (LP: #1665694)
    - doc: Fix configuration example for cc_set_passwords module.
      [Sergio Lystopad] (LP: #1665773)
    - ...

Read more...

Changed in cloud-init (Ubuntu Yakkety):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for cloud-init has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :
Download full text (3.4 KiB)

This bug was fixed in the package cloud-init - 0.7.9-90-g61eb03fe-0ubuntu1~16.04.1

---------------
cloud-init (0.7.9-90-g61eb03fe-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  * debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460)
  * New upstream snapshot.
    - OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946)
    - Fix bug that resulted in an attempt to rename bonds or vlans.
      (LP: #1669860)
    - tests: update OpenNebula and Digital Ocean to not rely on host
      interfaces.
    - net: in netplan renderer delete known image-builtin content.
      (LP: #1675576)
    - doc: correct grammar in capabilities.rst [David Tagatac]
    - ds-identify: fix detecting of maas datasource. (LP: #1677710)
    - netplan: remove debugging prints, add debug logging [Ryan Harper]
    - ds-identify: do not write None twice to datasource_list.
    - support resizing partition and rootfs on system booted without
      initramfs. [Steve Langasek] (LP: #1677376)
    - apt_configure: run only when needed. (LP: #1675185)
    - OpenStack: identify OpenStack by product 'OpenStack Compute'.
      (LP: #1675349)
    - GCE: Search GCE in ds-identify, consider serial number in check.
      (LP: #1674861)
    - Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325)
    - Fix filesystem creation when using "partition: auto"
      [Jonathan Ballet] (LP: #1634678)
    - ConfigDrive: support reading config drive data from /config-drive.
      (LP: #1673411)
    - ds-identify: fix detection of Bigstep datasource. (LP: #1674766)
    - test: add running of pylint [Joshua Powers]
    - ds-identify: fix bug where filename expansion was left on.
    - advertise network config v2 support (NETWORK_CONFIG_V2) in features.
    - Bigstep: fix bug when executing in python3. [root]
    - Fix unit test when running in a system deployed with cloud-init.
    - Bounce network interface for Azure when using the built-in path.
      [Brent Baude] (LP: #1674685)
    - cloudinit.net: add network config v2 parsing and rendering [Ryan Harper]
    - net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317)
    - net: add renderers for automatically selecting the renderer.
    - doc: fix config drive doc with regard to unpartitioned disks.
      (LP: #1673818)
    - test: Adding integratiron test for password as list [Joshua Powers]
    - render_network_state: switch arguments around, do not require target
    - support 'loopback' as a device type.
    - Integration Testing: improve testcase subclassing [Wesley Wiedenmeier]
    - gitignore: adding doc/rtd_html [Joshua Powers]
    - doc: add instructions for running integration tests via tox.
      [Joshua Powers]
    - test: avoid differences in 'date' output due to daylight savings.
    - Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837)
    - Add feature flags to cloudinit.version. [Wesley Wiedenmeier]
    - tox: add a citest environment
    - Support chpasswd/list being a list in addition to a string.
      [Sergio Lystopad] (LP: #1665694)
    - doc: Fix configuration example for cc_set_passwords module.
      [Sergio Lystopad] (LP: #1665773...

Read more...

Changed in cloud-init (Ubuntu Xenial):
status: Fix Committed → Fix Released

This bug is believed to be fixed in cloud-init in 17.1. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Changed in cloud-init:
status: Fix Committed → Fix Released
tags: added: id-58d1e989e9aad3138d26e398
Wessel van Norel (delgurth) wrote :
Download full text (4.4 KiB)

Unfortunately it seems 17.1 doesn't help me.

apt policy cloud-init
cloud-init:
  Installed: 17.1-46-g7acc9e68-0ubuntu1~16.04.1
  Candidate: 17.1-46-g7acc9e68-0ubuntu1~16.04.1
  Version table:
 *** 17.1-46-g7acc9e68-0ubuntu1~16.04.1 500
        500 http://europe-west1.gce.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     0.7.7~bzr1212-0ubuntu1 500
        500 http://europe-west1.gce.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

I still get the message on login.

**************************************************************************
# A new feature in cloud-init identified possible datasources for #
# this system as: #
# ['None'] #
# However, the datasource used was: GCE #
# #
# In the future, cloud-init will only attempt to use datasources that #
# are identified or specifically configured. #
# For more information see #
# https://bugs.launchpad.net/bugs/1669675 #
# #
# If you are seeing this message, please file a bug against #
# cloud-init at #
# https://bugs.launchpad.net/cloud-init/+filebug?field.tags=dsid #
# Make sure to include the cloud provider your instance is #
# running on. #
# #
# After you have filed a bug, you can disable this warning by launching #
# your instance with the cloud-config below, or putting that content #
# into /etc/cloud/cloud.cfg.d/99-warnings.cfg #
# #
# #cloud-config #
# warnings: #
# dsid_missing_source: off #
**************************************************************************

cat /run/cloud-init/cloud.cfg
di_report:
  datasource_list: [ GCE, None ]

cat /run/cloud-init/ds-identify.log
[up 9.50s] ds-identify
policy loaded: mode=report report=false found=all maybe=all notfound=enabled
/etc/cloud/cloud.cfg.d/91-gce.cfg set datasource_list: [ GCE, NoCloud, None ]
DMI_PRODUCT_NAME=Google
DMI_SYS_VENDOR=Google
DMI_PRODUCT_SERIAL=GoogleCloud-D322C7E530748941965B3201D708D6EA
DMI_PRODUCT_UUID=D322C7E5-3074-8941-965B-3201D708D6EA
PID_1_PRODUCT_NAME=unavailable
DMI_CHASSIS_ASSET_TAG=
FS_LABELS=cloudimg-rootfs
KERNEL_CMDLINE=BOOT_IMAGE=/boot/vmlinuz-4.4.0-112-generic root=UUID=e337c824-614a-4625-b98c-e48a72135196 ro console=ttyS0
VIRT=kvm
UNAME_KERNEL_NAME=Linux
UNAME_KERNEL_RELEASE=4.4.0-112-generic
UNAME_KERNEL_VERSION=#135-Ubuntu SMP Fri Jan 19 11:48:36 UTC 2018
UNAME_...

Read more...

Scott Moser (smoser) wrote :

Francis,
Currently nothing is disabling the warning.
You can disable it safely as instructed in the message or by
 rm -Rf /var/lib/cloud/warnings

Wessel van Norel (delgurth) wrote :

Ok, so once the warning was generated it wouldn't go away unless I removed it. Removed now. Thanks.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers