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
When executing tests that use the SSH plugin and the current version of Paramiko, an exception occurs due to a broken import:
Traceback (most recent call last):
File "/home/dwalleck/opencafe_demo/cafe_env/local/lib/python2.7/site-packages/cloudroast/compute/instance_actions/api/test_create_server.py", line 342, in test_personality_file_created
self.server, self.servers_config, key=self.key.private_key)
File "/home/dwalleck/opencafe_demo/cafe_env/local/lib/python2.7/site-packages/cloudcafe/compute/servers_api/behaviors.py", line 539, in get_remote_instance_client
from cloudcafe.compute.common.clients.remote_instance.linux.\
File "/home/dwalleck/opencafe_demo/cafe_env/local/lib/python2.7/site-packages/cloudcafe/compute/common/clients/remote_instance/linux/linux_client.py", line 22, in <module>
from cafe.engine.ssh.client import SSHAuthStrategy, SSHClient
File "/home/dwalleck/opencafe_demo/cafe_env/local/lib/python2.7/site-packages/cafe/engine/ssh/client.py", line 21, in <module>
from paramiko.resource import ResourceManager
ImportError: No module named resource
Digging back into Paramiko, it appears that the ResourceManager was removed because fixes for memory leaks and other issues deprecated its use:
The back-reference from Transport to SSHClient was added because
the SSHClient had a destructor that would close the Transport,
and some users did not want the Transport closed when the SSHClient
was garbage collected.
The SSHClient destructor was not a normal destructor, it was
implemented with the ResourceManager singleton. This sometimes
prevented the GC cycle detector from freeing the SSHClient and
Transport even after the Transport Thread stopped running.
We can simplify these problems by just getting rid of the
ResourceManager, and the back-reference. Transports cannot be
garbage-collected while their Thread is running, .close() must
be called (on the SSHClient or the Transport).
Based on this information, we should be able to remove our additional management of connections safely.
The text was updated successfully, but these errors were encountered:
When executing tests that use the SSH plugin and the current version of Paramiko, an exception occurs due to a broken import:
Digging back into Paramiko, it appears that the ResourceManager was removed because fixes for memory leaks and other issues deprecated its use:
paramiko/paramiko#949
paramiko/paramiko#952
Based on this information, we should be able to remove our additional management of connections safely.
The text was updated successfully, but these errors were encountered: