You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description
When using the cloud.present state with the vSphere provider, alternating states fail with SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC. If you add another state ID (corresponding to another VM), then the states that fail change but always alternate (every other state ID fails):
----------
ID: cloud_salt-proxy02
Function: cloud.present
Name: salt-proxy02.example.com
Result: True
Comment: Already present instance salt-proxy02.example.com
Started: 00:01:44.490419
Duration: 1723.694 ms
Changes:
----------
ID: cloud_salt01
Function: cloud.present
Name: salt01.example.com
Result: False
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/salt/state.py", line 2180, in call
*cdata["args"], **cdata["kwargs"]
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in wrapper
return f(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/states/cloud.py", line 104, in present
if __salt__["cloud.has_instance"](name=name, provider=None):
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 148, in has_instance
data = get_instance(name, provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 174, in get_instance
data = action(fun="show_instance", names=[name], provider=provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 259, in action
info = client.action(fun, cloudmap, names, provider, instance, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 486, in action
return mapper.do_action(names, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 1482, in do_action
vm_name, call="action"
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 2201, in show_instance
_get_si(), vim.VirtualMachine, vm_properties
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 272, in _get_si
url, username, password, protocol=protocol, port=port, verify_ssl=verify_ssl
File "/usr/lib/python3.6/site-packages/salt/utils/vmware.py", line 478, in get_service_instance
service_instance.CurrentTime()
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 706, in <lambda>
self.f(*(self.args + (obj,) + args), **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 512, in _InvokeMethod
return self._stub.InvokeMethod(self, info, args)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/SoapAdapter.py", line 1351, in InvokeMethod
resp = conn.getresponse()
File "/usr/lib64/python3.6/http/client.py", line 1361, in getresponse
response.begin()
File "/usr/lib64/python3.6/http/client.py", line 311, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python3.6/http/client.py", line 272, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib64/python3.6/socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "/usr/lib64/python3.6/ssl.py", line 971, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib64/python3.6/ssl.py", line 833, in read
return self._sslobj.read(len, buffer)
File "/usr/lib64/python3.6/ssl.py", line 590, in read
v = self._sslobj.read(len, buffer)
ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2354)
Started: 00:01:46.214575
Duration: 1151.133 ms
Changes:
----------
ID: cloud_salt02
Function: cloud.present
Name: salt02.example.com
Result: True
Comment: Already present instance salt02.example.com
Started: 00:01:47.366804
Duration: 1484.715 ms
Changes:
----------
ID: cloud_salt-quorum01
Function: cloud.present
Name: salt-quorum01.example.com
Result: False
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/salt/state.py", line 2180, in call
*cdata["args"], **cdata["kwargs"]
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in wrapper
return f(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/states/cloud.py", line 104, in present
if __salt__["cloud.has_instance"](name=name, provider=None):
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 148, in has_instance
data = get_instance(name, provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 174, in get_instance
data = action(fun="show_instance", names=[name], provider=provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 259, in action
info = client.action(fun, cloudmap, names, provider, instance, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 486, in action
return mapper.do_action(names, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 1482, in do_action
vm_name, call="action"
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 2201, in show_instance
_get_si(), vim.VirtualMachine, vm_properties
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 272, in _get_si
url, username, password, protocol=protocol, port=port, verify_ssl=verify_ssl
File "/usr/lib/python3.6/site-packages/salt/utils/vmware.py", line 478, in get_service_instance
service_instance.CurrentTime()
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 706, in <lambda>
self.f(*(self.args + (obj,) + args), **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 512, in _InvokeMethod
return self._stub.InvokeMethod(self, info, args)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/SoapAdapter.py", line 1351, in InvokeMethod
resp = conn.getresponse()
File "/usr/lib64/python3.6/http/client.py", line 1361, in getresponse
response.begin()
File "/usr/lib64/python3.6/http/client.py", line 311, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python3.6/http/client.py", line 272, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib64/python3.6/socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "/usr/lib64/python3.6/ssl.py", line 971, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib64/python3.6/ssl.py", line 833, in read
return self._sslobj.read(len, buffer)
File "/usr/lib64/python3.6/ssl.py", line 590, in read
v = self._sslobj.read(len, buffer)
ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2354)
Started: 00:01:48.851880
Duration: 890.016 ms
Changes:
----------
ID: cloud_fog01
Function: cloud.present
Name: fog01.example.com
Result: True
Comment: Already present instance fog01.example.com
Started: 00:01:49.742685
Duration: 1372.79 ms
Changes:
----------
ID: cloud_proxy01
Function: cloud.present
Name: proxy01.example.com
Result: False
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/salt/state.py", line 2180, in call
*cdata["args"], **cdata["kwargs"]
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in wrapper
return f(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/states/cloud.py", line 104, in present
if __salt__["cloud.has_instance"](name=name, provider=None):
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 148, in has_instance
data = get_instance(name, provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 174, in get_instance
data = action(fun="show_instance", names=[name], provider=provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 259, in action
info = client.action(fun, cloudmap, names, provider, instance, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 486, in action
return mapper.do_action(names, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 1482, in do_action
vm_name, call="action"
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 2201, in show_instance
_get_si(), vim.VirtualMachine, vm_properties
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 272, in _get_si
url, username, password, protocol=protocol, port=port, verify_ssl=verify_ssl
File "/usr/lib/python3.6/site-packages/salt/utils/vmware.py", line 478, in get_service_instance
service_instance.CurrentTime()
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 706, in <lambda>
self.f(*(self.args + (obj,) + args), **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 512, in _InvokeMethod
return self._stub.InvokeMethod(self, info, args)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/SoapAdapter.py", line 1351, in InvokeMethod
resp = conn.getresponse()
File "/usr/lib64/python3.6/http/client.py", line 1361, in getresponse
response.begin()
File "/usr/lib64/python3.6/http/client.py", line 311, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python3.6/http/client.py", line 272, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib64/python3.6/socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "/usr/lib64/python3.6/ssl.py", line 971, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib64/python3.6/ssl.py", line 833, in read
return self._sslobj.read(len, buffer)
File "/usr/lib64/python3.6/ssl.py", line 590, in read
v = self._sslobj.read(len, buffer)
ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2354)
Started: 00:01:51.115883
Duration: 856.015 ms
Changes:
----------
ID: cloud_vault01
Function: cloud.present
Name: vault01.example.com
Result: True
Comment: Already present instance vault01.example.com
Started: 00:01:51.972497
Duration: 1385.258 ms
Changes:
----------
ID: cloud_nautobot01
Function: cloud.present
Name: nautobot01.example.com
Result: False
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/salt/state.py", line 2180, in call
*cdata["args"], **cdata["kwargs"]
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in wrapper
return f(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/states/cloud.py", line 104, in present
if __salt__["cloud.has_instance"](name=name, provider=None):
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 148, in has_instance
data = get_instance(name, provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 174, in get_instance
data = action(fun="show_instance", names=[name], provider=provider)
File "/usr/lib/python3.6/site-packages/salt/modules/cloud.py", line 259, in action
info = client.action(fun, cloudmap, names, provider, instance, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 486, in action
return mapper.do_action(names, kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/__init__.py", line 1482, in do_action
vm_name, call="action"
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1201, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
return callable(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1216, in _run_as
return _func_or_method(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 2201, in show_instance
_get_si(), vim.VirtualMachine, vm_properties
File "/usr/lib/python3.6/site-packages/salt/cloud/clouds/vmware.py", line 272, in _get_si
url, username, password, protocol=protocol, port=port, verify_ssl=verify_ssl
File "/usr/lib/python3.6/site-packages/salt/utils/vmware.py", line 478, in get_service_instance
service_instance.CurrentTime()
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 706, in <lambda>
self.f(*(self.args + (obj,) + args), **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/VmomiSupport.py", line 512, in _InvokeMethod
return self._stub.InvokeMethod(self, info, args)
File "/usr/local/lib/python3.6/site-packages/pyVmomi/SoapAdapter.py", line 1351, in InvokeMethod
resp = conn.getresponse()
File "/usr/lib64/python3.6/http/client.py", line 1361, in getresponse
response.begin()
File "/usr/lib64/python3.6/http/client.py", line 311, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python3.6/http/client.py", line 272, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib64/python3.6/socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "/usr/lib64/python3.6/ssl.py", line 971, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib64/python3.6/ssl.py", line 833, in read
return self._sslobj.read(len, buffer)
File "/usr/lib64/python3.6/ssl.py", line 590, in read
v = self._sslobj.read(len, buffer)
ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2354)
Started: 00:01:53.358182
Duration: 1055.439 ms
Changes:
Steps to Reproduce the behavior
Run state.apply on the master minion with the above configuration files
Expected behavior
All state IDs should either report Already present or provision the VM
Versions Report
salt --versions-report
(Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
Salt Version:
Salt: 3004.1Dependency Versions:
cffi: 1.11.5cherrypy: unknowndateutil: 2.6.1docker-py: Not Installedgitdb: Not Installedgitpython: Not InstalledJinja2: 2.10.1libgit2: 0.26.8M2Crypto: 0.35.2Mako: Not Installedmsgpack: 0.6.2msgpack-pure: Not Installedmysql-python: Not Installedpycparser: 2.14pycrypto: Not Installedpycryptodome: Not Installedpygit2: 0.26.4Python: 3.6.8 (default, Nov 17 2021, 16:10:06)python-gnupg: Not InstalledPyYAML: 3.12PyZMQ: 19.0.0smmap: Not Installedtimelib: Not InstalledTornado: 4.5.3ZMQ: 4.3.4System Versions:
dist: almalinux 8.5 Arctic Sphynxlocale: UTF-8machine: x86_64release: 4.18.0-348.20.1.el8_5.x86_64system: Linuxversion: AlmaLinux 8.5 Arctic Sphynx
Additional context
Master has pyvmomi 7.0.3 installed
The text was updated successfully, but these errors were encountered:
One other thing of note that I didn't catch right away, is that for the VMs that fail, Salt is pre-generating new keys, knocking existing minions offline. This essentially makes this state function unusable as it actively breaks things if used.
While attempting to work around this issue by implementing a custom Runner (where I catch ssl.SSLError from a dummy call to cloud.* after every actual call to cloud.* I wish to make), I started getting a BrokenPipeError. That led me to #58869, in which I found the workaround listed here also provided a workaround for this issue as well.
Description
When using the
cloud.present
state with the vSphere provider, alternating states fail withSSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC
. If you add another state ID (corresponding to another VM), then the states that fail change but always alternate (every other state ID fails):Setup
Here's my state file:
/etc/salt/cloud.providers.d/vmware.conf:
Steps to Reproduce the behavior
Run state.apply on the master minion with the above configuration files
Expected behavior
All state IDs should either report Already present or provision the VM
Versions Report
salt --versions-report
(Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)Additional context
Master has pyvmomi 7.0.3 installed
The text was updated successfully, but these errors were encountered: