SSH timeout (wait timeout) due to potential paramiko issue
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Critical
|
Unassigned | ||
tempest |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Recently, nothing changed on the test case, but we got this failure:
https:/
LOG:
Traceback (most recent call last):
File "/opt/stack/
utils.
File "/opt/stack/
while not predicate():
File "/opt/stack/
return not fip_pf_
File "/opt/stack/
self.
File "/opt/stack/
ssh_
File "/opt/stack/
return self.exec_
File "/opt/stack/
return self(f, *args, **kw)
File "/opt/stack/
do = self.iter(
File "/opt/stack/
return fut.result()
File "/usr/lib/
return self.__get_result()
File "/usr/lib/
raise self._exception
File "/opt/stack/
result = fn(*args, **kwargs)
File "/opt/stack/
return super(Client, self).exec_
File "/opt/stack/
channel.
File "/opt/stack/
return func(self, *args, **kwds)
File "/opt/stack/
self.
File "/opt/stack/
self.
File "/usr/lib/
signaled = self._cond.
File "/usr/lib/
waiter.
File "/opt/stack/
raise TimeoutException()
fixtures.
Some search in the neutron LP bug list, there are some old bugs related to this project "paramiko":
https:/
https:/
https:/
The issue seems to be _wait_for_event is waiting for something, and finally get timeout.
After some searching in the repo of paramiko in github, I saw this issue:
https:/
With a commit for this:
https:/
But it is not included in any release version.
Some thoughts:
1. if it is possible to not use paramiko?
2. run (ssh) commands directly by some oslo libs?
3. ping paramiko maintainers to release once to see if the test success rate can get better
tags: | added: gate-failure |
Changed in neutron: | |
importance: | Undecided → Critical |
Similar failures: /04f7ac194e853c 778b5c- 637f8ccb892d615 b1b6b9e58fd5536 96.ssl. cf2.rackcdn. com/787474/ 1/check/ neutron- tempest- plugin- scenario- linuxbridge- train/9358492/ testr_results. html
(1) https:/
Traceback (most recent call last): tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ scenario/ test_multicast. py", line 275, in test_multicast_ between_ vms_on_ same_network d=unregistered) tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ scenario/ test_multicast. py", line 306, in _check_ multicast_ conectivity _prepare_ unregistered( unregistered, mcast_address) tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ scenario/ test_multicast. py", line 251, in _prepare_ unregistered list_addresses( port=server[ 'port'] ) tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ common/ ip.py", line 120, in list_addresses 'address' , *command) tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ common/ ip.py", line 58, in execute self.timeout) .stdout tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ common/ shell.py" , line 69, in execute client= ssh_client) tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ common/ shell.py" , line 103, in execute_ remote_ command exec_command( command, timeout=timeout) tempest/ .tox/tempest/ lib/python3. 6/site- packages/ tenacity/ __init_ _.py", line 333, in wrapped_f tempest/ .tox/tempest/ lib/python3. 6/site- packages/ tenacity/ __init_ _.py", line 423, in __call__ retry_state= retry_state) tempest/ .tox/tempest/ lib/python3. 6/site- packages/ tenacity/ __init_ _.py", line 360, in iter python3. 6/concurrent/ futures/ _base.py" , line 425, in result python3. 6/concurrent/ futures/ _base.py" , line 384, in __get_result tempest/ .tox/tempest/ lib/python3. 6/site- packages/ tenacity/ __init_ _.py", line 426, in __call__ tempest/ .tox/tempest/ lib/python3. 6/site- packages/ neutron_ tempest_ plugin/ common/ ssh.py" , line 171, in exec_command command( cmd=cmd, encoding=encoding) tempest/ tempest/ lib/common/ ssh.py" , line 160, in exec_command open_session( ) as channel: tempest/ .tox/tempest/ lib/python3. 6/site- packages/ paramiko/ transport. py", line 879, in open_session timeout, tempest/ .tox/tempest/ lib/python3. 6/site- packages/ paramiko/ transport. py", line 1001, in open_channel python3. 6/threading. py", line 551, in wait wait(timeout) python3. 6/threading. py", line 299, in wait acquire( True, timeout)
File "/opt/stack/
unregistere
File "/opt/stack/
self.
File "/opt/stack/
addresses = ip_command.
File "/opt/stack/
output = self.execute(
File "/opt/stack/
timeout=
File "/opt/stack/
ssh_
File "/opt/stack/
stdout = ssh_client.
File "/opt/stack/
return self(f, *args, **kw)
File "/opt/stack/
do = self.iter(
File "/opt/stack/
return fut.result()
File "/usr/lib/
return self.__get_result()
File "/usr/lib/
raise self._exception
File "/opt/stack/
result = fn(*args, **kwargs)
File "/opt/stack/
return super(Client, self).exec_
File "/opt/stack/
with transport.
File "/opt/stack/
timeout=
File "/opt/stack/
event.wait(0.1)
File "/usr/lib/
signaled = self._cond.
File "/usr/lib/
gotit = waiter.
File...