← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1944946] Re: Path of open-vm-tools libdeployPkgPlugin.so is now multi-arch compliant breaking cloud-init

 

This bug was fixed in the package cloud-init - 21.4-0ubuntu1~22.04.1

---------------
cloud-init (21.4-0ubuntu1~22.04.1) jammy; urgency=medium

  * d/upstream/metadata: Change contact to James Falcon
  * d/cloud-init.templates: Add LXD to default datasource_list with
    translations
  * drop the following cherry-picks now included:
    + cpick-28e56d99-Azure-Retry-dhcp-on-timeouts-when-polling
    + cpick-e69a8874-Set-Azure-to-only-update-metadata-on-BOOT_NEW_INSTANCE
    + cpick-612e3908-Add-connectivity_url-to-Oracle-s-EphemeralDHCPv4-988
    + cpick-dc227869-Set-Azure-to-apply-networking-config-every-BOOT-1023
    + cpick-9c147e83-Allow-disabling-of-network-activation-SC-307-1048
  * New upstream release.
    - Release 21.4 (#1091) (LP: #1949405)
    - Azure: fallback nic needs to be reevaluated during reprovisioning
      (#1094) [Anh Vo]
    - azure: pps imds (#1093) [Anh Vo]
    - testing: Remove calls to 'install_new_cloud_init' (#1092)
    - Add LXD datasource (#1040)
    - Fix unhandled apt_configure case. (#1065) [Brett Holman]
    - Allow libexec for hotplug (#1088)
    - Add necessary mocks to test_ovf unit tests (#1087)
    - Remove (deprecated) apt-key (#1068) [Brett Holman] (LP: #1836336)
    - distros: Remove a completed "TODO" comment (#1086)
    - cc_ssh.py: Add configuration for controlling ssh-keygen output (#1083)
      [dermotbradley]
    - Add "install hotplug" module (SC-476) (#1069) (LP: #1946003)
    - hosts.alpine.tmpl: rearrange the order of short and long hostnames
      (#1084) [dermotbradley]
    - Add max version to docutils
    - cloudinit/dmi.py: Change warning to debug to prevent console display
      (#1082) [dermotbradley]
    - remove unnecessary EOF string in
      disable-sshd-keygen-if-cloud-init-active.conf (#1075) [Emanuele
      Giuseppe Esposito]
    - Add module 'write-files-deferred' executed in stage 'final' (#916)
      [Lucendio]
    - Bump pycloudlib to fix CI (#1080)
    - Remove pin in dependencies for jsonschema (#1078)
    - Add "Google" as possible system-product-name (#1077) [vteratipally]
    - Update Debian security suite for bullseye (#1076) [Johann Queuniet]
    - Leave the details of service management to the distro (#1074)
      [Andy Fiddaman]
    - Fix typos in setup.py (#1059) [Christian Clauss]
    - Update Azure _unpickle (SC-500) (#1067) (LP: #1946644)
    - cc_ssh.py: fix private key group owner and permissions (#1070)
      [Emanuele Giuseppe Esposito]
    - VMware: read network-config from ISO (#1066) [Thomas Weißschuh]
    - testing: mock sleep in gce unit tests (#1072)
    - CloudStack: fix data-server DNS resolution (#1004)
      [Olivier Lemasle] (LP: #1942232)
    - Fix unit test broken by pyyaml upgrade (#1071)
    - testing: add get_cloud function (SC-461) (#1038)
    - Inhibit sshd-keygen@.service if cloud-init is active (#1028)
      [Ryan Harper]
    - VMWARE: search the deployPkg plugin in multiarch dir (#1061)
      [xiaofengw-vmware] (LP: #1944946)
    - Fix set-name/interface DNS bug (#1058) [Andrew Kutz] (LP: #1946493)
    - Use specified tmp location for growpart (#1046) [jshen28]
    - .gitignore: ignore tags file for ctags users (#1057) [Brett Holman]
    - Allow comments in runcmd and report failed commands correctly (#1049)
      [Brett Holman] (LP: #1853146)
    - tox integration: pass the *_proxy, GOOGLE_*, GCP_* env vars (#1050)
      [Paride Legovini]
    - Allow disabling of network activation (SC-307) (#1048) (LP: #1938299)
    - renderer: convert relative imports to absolute (#1052) [Paride Legovini]
    - Support ETHx_IP6_GATEWAY, SET_HOSTNAME on OpenNebula (#1045)
      [Vlastimil Holer]
    - integration-requirements: bump the pycloudlib commit (#1047)
      [Paride Legovini]
    - Allow Vultr to set MTU and use as-is configs (#1037) [eb3095]
    - pin jsonschema in requirements.txt (#1043)
    - testing: remove cloud_tests (#1020)
    - Add andgein as contributor (#1042) [Andrew Gein]
    - Make wording for module frequency consistent (#1039) [Nicolas Bock]
    - Use ascii code for growpart (#1036) [jshen28]
    - Add jshen28 as contributor (#1035) [jshen28]
    - Skip test_cache_purged_on_version_change on Azure (#1033)
    - Remove invalid ssh_import_id from examples (#1031)
    - Cleanup Vultr support (#987) [eb3095]
    - docs: update cc_disk_setup for fs to raw disk (#1017)
    - HACKING.rst: change contact info to James Falcon (#1030)
    - tox: bump the pinned flake8 and pylint version (#1029)
      [Paride Legovini] (LP: #1944414)
    - Add retries to DataSourceGCE.py when connecting to GCE (#1005)
      [vteratipally]
    - Set Azure to apply networking config every BOOT (#1023)
    - Add connectivity_url to Oracle's EphemeralDHCPv4 (#988) (LP: #1939603)
    - docs: fix typo and include sudo for report bugs commands (#1022)
      [Renan Rodrigo] (LP: #1940236)
    - VMware: Fix typo introduced in #947 and add test (#1019) [PengpengSun]
    - Update IPv6 entries in /etc/hosts (#1021) [Richard Hansen] (LP: #1943798)
    - Integration test upgrades for the 21.3-1 SRU (#1001)
    - Add Jille to tools/.github-cla-signers (#1016) [Jille Timmermans]
    - Improve ug_util.py (#1013) [Shreenidhi Shedi]
    - Support openEuler OS (#1012) [zhuzaifangxuele]
    - ssh_utils.py: ignore when sshd_config options are not key/value pairs
      (#1007) [Emanuele Giuseppe Esposito]
    - Set Azure to only update metadata on BOOT_NEW_INSTANCE (#1006)
    - cc_update_etc_hosts: Use the distribution-defined path for the hosts
      file (#983) [Andy Fiddaman]
    - Add CloudLinux OS support (#1003) [Alexandr Kravchenko]
    - puppet config: add the start_agent option (#1002) [Andrew Bogott]
    - Fix `make style-check` errors (#1000) [Shreenidhi Shedi]
    - Make cloud-id copyright year (#991) [Andrii Podanenko]
    - Add support to accept-ra in networkd renderer (#999) [Shreenidhi Shedi]
    - Update ds-identify to pass shellcheck (#979) [Andrew Kutz]
    - Azure: Retry dhcp on timeouts when polling reprovisiondata (#998)
      [aswinrajamannar]

 -- James Falcon <james.falcon@xxxxxxxxxxxxx>  Tue, 02 Nov 2021 18:07:49
-0500

** Changed in: cloud-init (Ubuntu)
       Status: Triaged => Fix Released

-- 
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/1944946

Title:
  Path of open-vm-tools libdeployPkgPlugin.so is now multi-arch
  compliant breaking cloud-init

Status in cloud-init:
  Fix Released
Status in cloud-init package in Ubuntu:
  Fix Released
Status in open-vm-tools package in Ubuntu:
  Fix Released
Status in cloud-init source package in Focal:
  New
Status in open-vm-tools source package in Focal:
  Fix Released
Status in cloud-init source package in Hirsute:
  New
Status in open-vm-tools source package in Hirsute:
  Fix Released

Bug description:
  [Impact]

   * The package correctly fixed a non multiarch path, but we missed
     that some depending SW might have mad assumptions on the old paths.
     One such SW is cloud-init which in certain cases now fails to detect
     and configure vmware correctly.

   * In the long run (next Debian and 22.04) we will keep only the new
     paths. But for 21.10 time is too short and even more so for the SRUs
     that we regularly do back to at least the last LTS.
     There we want to mitigate the impact by adding a compat link on the
     old path.

  [Test Plan]

   * We need to configure cloud-init to check for VMware IVMF data and we
     will see that without the fix it is failing to be detected.

   * Set up Ubuntu in VMWare if you do not ahve any ESXi then VMWare
  Workstation player 16 for Ubuntu as trial from
  https://www.vmware.com/products/workstation-player/workstation-player-
  evaluation.html is enough.

  # Reduce the ouput a bit for readability and make it not skip vmware
  $ echo "datasource_list: [NoCloud, OVF]" < sudo tee /etc/cloud/cloud.cfg.d/99_test.cfg
  $ echo "disable_vmware_customization: false" | sudo tee -a /etc/cloud/cloud.cfg.d/99_test.cfg
  # Run ds-dentify with debug on
  $ sudo DEBUG_LEVEL=5 DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force
  # Check the result
  $ cat /run/cloud-init/cloud.cfg

  Bad case example:
  ...
  Checking for datasource 'OVF' via 'dscheck_OVF'
  Running on vmware but rpctool query returned 1: No value found
  check for 'OVF' returned not-found[1]
  found= maybe=
  No ds found [mode=search, notfound=disabled]. Disabled cloud-init [1]
  [up 3554.80s] returning 1

  And the result is:
  $ cat /run/cloud-init/cloud.cfg
  di_report:
    datasource_list: [ ]
    # reporting not found result. notfound=disabled.

  Good case example:
  ...
  Checking for datasource 'OVF' via 'dscheck_OVF'
  Running on vmware but rpctool query returned 1: No value found
  /etc/cloud/cloud.cfg.d/99_test.cfg set disable_vmware_customization to false
  check for 'OVF' returned found
  found=OVF maybe=
  Found single datasource: OVF
  [up 3357.93s] returning 0

  And the result is:
  $ cat /run/cloud-init/cloud.cfg
  datasource_list: [ OVF, None ]

  Note: VMware who spotted this will do a verification as well on this
  case.

  [Where problems could occur]

   * Since we do not remove, but add a link (that exactly matches the
     formerly used path) I'm not too concerned. The issue I can think of
     would be e.g. security policies that prevent .so files to load through
     symlinks or anything like that. But in that case still the upload
     would not further degrade things, it would just not fix it.
     Test wise this is all about guest customizations and VMware plugin and
     VMware as usual will do checks for that when this is in verification.

  [Other Info]

   * Down the road we still want to drop that path, it is only added now to
     temporarily mitigate such issues. Therefore we do NOT want to have that
     in 22.04 for a long time, and will most likely drop it there soon to
     spot further issues with it.
   * For the same reason I'm also not uploading it to Debian via
     https://salsa.debian.org/vmware-packaging-team/pkg-open-vm-tools/-/merge_requests/11 there the active release isn't affected yet
     and the next one shall go without (like 22.04)
   * But for active Ubuntu release which got the backport I'd want to
     SRU fix it despite also having the cloud-init fix later on, since we do
     not know which other SW might rely on that path.

  ------

  Problem:
  the path of plugin libdeployPkgPlugin.so of open-vm-tools is changed and guest customization will fail for ubuntu 21.10 beta image

  Description:
  Ubuntu 21.10 have new open-vm-tools 11.3.0. with this new open-vm-tools, the plugin libdeployPkgPlugin.so is put to directory /usr/lib/x86_64-linux-gnu/open-vm-tools/plugins/vmsvc/.

  In previous open-vm-tools version (such as 11.2.5), the the plugin
  libdeployPkgPlugin.so is put to directory /usr/lib/open-vm-
  tools/plugins/vmsvc/

  The path change of plugin libdeployPkgPlugin.so will cause the guest
  customization failure.

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