Closed Udayendu closed 3 years ago
@jborean93 Could you please take a look at this ? I am not sure why its not retrying even after having the entry in the inventory file.
Answered in https://github.com/ansible/ansible/issues/75197.
TLDR: read timeouts aren't configured to retry ever due to the state mutation they may be in response of.
Summary
psrp_reconnection_retries
is not working as expected. Its dropping the connection immediately.Issue Type
Component Name
Additional Information
[windows:children] dotnetserv01
[windows:vars] ansible_user=demoadmin ansible_password=XXXXXX ansible_port=5986 ansible_connection=psrp ansible_psrp_auth=credssp ansible_psrp_cert_validation=ignore ansible_psrp_connection_timeout=1800 ansible_psrp_operation_timeout=1200 ansible_psrp_reconnection_retries=100 <<<<
$ cat roles/dotnet/tasks/main.yml
name: PSRP Port Status wait_for: port: 5986 state: started delay: 10 host: "{{ inventory_hostname }}" timeout: 600 register: result delegate_to: localhost
debug: var=result
name: Wait for system to become reachable over PSRP wait_for_connection: sleep: 5 delay: 30 connect_timeout: 120 timeout: 900 register: result
debug: var=result
name: Check for current Microsoft .NET Framework 4 version win_reg_stat: path: HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full name: Version register: dotnet_version
name: Display DOT NET Version debug: msg: "Microsoft .NET Framework 4 version [{{ dotnet_version.value }}]" verbosity: 1
block:
debug: var=dotnetfx_exe
name: Check for current Microsoft .NET Framework 4 version win_reg_stat: path: HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full name: Version register: dotnet_version failed_when: dotnet_version.value != dotnetVersion vars: dotnetVersion: "{{ DOT_NET_VERSION }}"
Start the above role deployment.
Then reboot the system in the middle of installation
It should wait as
ansible_psrp_reconnection_retries=100
is available in the inventory file.But immediately its failing with the traces as mentioned in the actual result.
Expected result
Actual result
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 439, in send resp = conn.urlopen( File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 755, in urlopen retries = retries.increment( File "/usr/local/lib/python3.8/dist-packages/urllib3/util/retry.py", line 532, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/local/lib/python3.8/dist-packages/urllib3/packages/six.py", line 770, in reraise raise value File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 699, in urlopen httplib_response = self._make_request( File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 447, in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 336, in _raise_timeout raise ReadTimeoutError( urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='192.168.0.120', port=5986): Read timed out. (read timeout=30)
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/lib/python3.8/dist-packages/ansible/executor/task_executor.py", line 159, in run res = self._execute() File "/usr/local/lib/python3.8/dist-packages/ansible/executor/task_executor.py", line 583, in _execute result = self._handler.run(task_vars=variables) File "/usr/local/lib/python3.8/dist-packages/ansible/plugins/action/normal.py", line 47, in run result = merge_hash(result, self._execute_module(task_vars=task_vars, wrap_async=wrap_async)) File "/usr/local/lib/python3.8/dist-packages/ansible/plugins/action/init.py", line 1112, in _execute_module res = self._low_level_execute_command(cmd, sudoable=sudoable, in_data=in_data) File "/usr/local/lib/python3.8/dist-packages/ansible/plugins/action/init.py", line 1264, in _low_level_execute_command rc, stdout, stderr = self._connection.exec_command(cmd, in_data=in_data, sudoable=sudoable) File "/usr/local/lib/python3.8/dist-packages/ansible/plugins/connection/psrp.py", line 454, in exec_command rc, stdout, stderr = self._exec_psrp_script(script, in_data) File "/usr/local/lib/python3.8/dist-packages/ansible/plugins/connection/psrp.py", line 878, in _exec_psrp_script ps.invoke(input=input_data) File "/usr/local/lib/python3.8/dist-packages/pypsrp/powershell.py", line 1102, in invoke return self.end_invoke() File "/usr/local/lib/python3.8/dist-packages/pypsrp/powershell.py", line 1078, in end_invoke self.poll_invoke() File "/usr/local/lib/python3.8/dist-packages/pypsrp/powershell.py", line 1252, in poll_invoke responses = self.runspace_pool._receive(self.id, File "/usr/local/lib/python3.8/dist-packages/pypsrp/powershell.py", line 640, in _receive response = self.shell.receive("stdout", command_id=command_id, File "/usr/local/lib/python3.8/dist-packages/pypsrp/shell.py", line 238, in receive response = self.wsman.receive(self.resource_uri, receive, File "/usr/local/lib/python3.8/dist-packages/pypsrp/wsman.py", line 311, in receive res = self.invoke(WSManAction.RECEIVE, resource_uri, resource, File "/usr/local/lib/python3.8/dist-packages/pypsrp/wsman.py", line 389, in invoke response = self.transport.send(xml) File "/usr/local/lib/python3.8/dist-packages/pypsrp/wsman.py", line 761, in send return self._send_request(prep_request) File "/usr/local/lib/python3.8/dist-packages/pypsrp/wsman.py", line 764, in _send_request response = self.session.send(request, timeout=( File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 529, in send raise ReadTimeout(e, request=request) requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='192.168.0.120', port=5986): Read timed out. (read timeout=30) fatal: [192.168.0.120]: FAILED! => { "msg": "Unexpected failure during module execution.", "stdout": "" }