Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WMI issue may break cloudbase-init adapter rename at VM node bootstrapping #151

Open
laozc opened this issue Jul 30, 2024 · 1 comment
Open

Comments

@laozc
Copy link
Contributor

laozc commented Jul 30, 2024

Recently cloudbase-init switched to use WMI to rename adapter for Windows Server 22H2 support.
Some system may experience some lags at bootstrapping which may cause the WMI to break.

2024-07-24 02:59:34.598 3384 INFO cloudbaseinit.plugins.common.networkconfig [-] Renaming network adapter "Ethernet0 2" to "eth0"

2024-07-24 03:00:34.667 3384 ERROR cloudbaseinit.init [-] plugin 'NetworkConfigPlugin' failed with error '<x_wmi: Call was canceled by the message filter.  (-2147418110, 'Call was canceled by the message filter. ', (0, None, 'Call was canceled by the message filter. ', None, None, -2147418110), None)>': wmi.x_wmi: <x_wmi: Call was canceled by the message filter.  (-2147418110, 'Call was canceled by the message filter. ', (0, None, 'Call was canceled by the message filter. ', None, None, -2147418110), None)>

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init [-] <x_wmi: Call was canceled by the message filter.  (-2147418110, 'Call was canceled by the message filter. ', (0, None, 'Call was canceled by the message filter. ', None, None, -2147418110), None)>: wmi.x_wmi: <x_wmi: Call was canceled by the message filter.  (-2147418110, 'Call was canceled by the message filter. ', (0, None, 'Call was canceled by the message filter. ', None, None, -2147418110), None)>

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init Traceback (most recent call last):

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 112, in func_wrapper

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     return func(*args, **kwargs)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init            ^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 736, in get_class

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     cls = self._get_mi_class(class_name)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 62, in wrapper

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     return f(*args, **kwargs)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init            ^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 747, in _get_mi_class

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     cls = op.get_next_class()

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init           ^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init PyMI.error: {'error_code': 2147549186, 'mi_result': 1, 'message': 'Call was canceled by the message filter. '}

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init During handling of the above exception, another exception occurred:

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init Traceback (most recent call last):

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\init.py", line 66, in _exec_plugin

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     (status, reboot_required) = plugin.execute(service,

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init                                 ^^^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 307, in execute

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     return self._process_network_details_v2(network_details)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 295, in _process_network_details_v2

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     NetworkConfigPlugin._process_physical_links(

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 205, in _process_physical_links

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     osutils.rename_network_adapter(adapter_name, link.name)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\osutils\windows.py", line 859, in rename_network_adapter

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     net_adapter = self._get_network_msft_adapter(old_name)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\osutils\windows.py", line 870, in _get_network_msft_adapter

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     conn = wmi.WMI(moniker='//./root/standardcimv2')

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 112, in func_wrapper

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     return func(*args, **kwargs)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init            ^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 932, in WMI

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     conn.__provider

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 112, in func_wrapper

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     return func(*args, **kwargs)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init            ^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init.py", line 601, in __getattr_

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     return self.get_class(six.text_type(name))

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\wmi_init_.py", line 125, in func_wrapper

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init     raise x_wmi(err_msg, com_ex)

2024-07-24 03:00:34.745 3384 ERROR cloudbaseinit.init wmi.x_wmi: <x_wmi: Call was canceled by the message filter.  (-2147418110, 'Call was canceled by the message filter. ', (0, None, 'Call was canceled by the message filter. ', None, None, -2147418110), None)>

It also breaks the static IP since it's required to rename the adapter.

@laozc
Copy link
Contributor Author

laozc commented Jul 30, 2024

https://review.opendev.org/c/x/cloudbase-init/+/925167
addresses the issue by first calling WMI and then fallback to netsh and Rename-Adapter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant