After some attempts to make it work without polling, I've had not much success, it still hangs sometimes. Maybe there is a locking problem in paramiko's buffered_pipe:
Traceback (most recent call last):
File "tempest/test.py", line 113, in wrapper
return f(self, *func_args, **func_kwargs)
File "/opt/stack/ironic/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py", line 124, in test_baremetal_server_ops
self.verify_partition(vm_client, 'ephemeral0', '/mnt', eph_size)
File "/opt/stack/ironic/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py", line 87, in verify_partition
num_bytes = client.exec_command(cmd).rstrip('\n')
File "tempest/common/utils/linux/remote_client.py", line 44, in exec_command
return self.ssh_client.exec_command(cmd)
File "tempest/lib/common/ssh.py", line 145, in exec_command
if channel.recv_ready():
File "/usr/local/lib/python2.7/dist-packages/paramiko/channel.py", line 580, in recv_ready
return self.in_buffer.read_ready()
File "/usr/local/lib/python2.7/dist-packages/paramiko/buffered_pipe.py", line 105, in read_ready
self._lock.acquire()
After some attempts to make it work without polling, I've had not much success, it still hangs sometimes. Maybe there is a locking problem in paramiko's buffered_pipe:
Traceback (most recent call last): ironic/ ironic_ tempest_ plugin/ tests/scenario/ test_baremetal_ basic_ops. py", line 124, in test_baremetal_ server_ ops verify_ partition( vm_client, 'ephemeral0', '/mnt', eph_size) ironic/ ironic_ tempest_ plugin/ tests/scenario/ test_baremetal_ basic_ops. py", line 87, in verify_partition exec_command( cmd).rstrip( '\n') common/ utils/linux/ remote_ client. py", line 44, in exec_command client. exec_command( cmd) lib/common/ ssh.py" , line 145, in exec_command recv_ready( ): lib/python2. 7/dist- packages/ paramiko/ channel. py", line 580, in recv_ready buffer. read_ready( ) lib/python2. 7/dist- packages/ paramiko/ buffered_ pipe.py" , line 105, in read_ready _lock.acquire( )
File "tempest/test.py", line 113, in wrapper
return f(self, *func_args, **func_kwargs)
File "/opt/stack/
self.
File "/opt/stack/
num_bytes = client.
File "tempest/
return self.ssh_
File "tempest/
if channel.
File "/usr/local/
return self.in_
File "/usr/local/
self.