diff options
author | Jeff Forcier <jeff@bitprophet.org> | 2016-06-17 14:42:24 -0700 |
---|---|---|
committer | Jeff Forcier <jeff@bitprophet.org> | 2016-06-17 14:42:24 -0700 |
commit | 7b5f7ef63e91e714457dfa40d9b71864228aff2c (patch) | |
tree | eb28b7f8c6bd6763b0f5771d92a5ae598b259004 | |
parent | 33981bd838a5c396fe561ce98fe1ea7d5e27b316 (diff) | |
parent | b3342c9ff2d75bc8e4ada312e68bf392eb962554 (diff) |
Merge branch '1.16' into 1.17
-rw-r--r-- | paramiko/client.py | 6 | ||||
-rw-r--r-- | sites/www/faq.rst | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/paramiko/client.py b/paramiko/client.py index e3d3780e..ebf21b08 100644 --- a/paramiko/client.py +++ b/paramiko/client.py @@ -382,6 +382,12 @@ class SSHClient (ClosingContextManager): def close(self): """ Close this SSHClient and its underlying `.Transport`. + + .. warning:: + Failure to do this may, in some situations, cause your Python + interpreter to hang at shutdown (often due to race conditions). + It's good practice to `close` your client objects anytime you're + done using them, instead of relying on garbage collection. """ if self._transport is None: return diff --git a/sites/www/faq.rst b/sites/www/faq.rst index a5d9b383..74b7501e 100644 --- a/sites/www/faq.rst +++ b/sites/www/faq.rst @@ -24,3 +24,13 @@ However, **closed does not imply locked** - affected users can still post comments on such tickets - and **we will always consider actual patch submissions for these issues**, provided they can get +1s from similarly affected users and are proven to not break existing functionality. + +I'm having strange issues with my code hanging at shutdown! +=========================================================== + +Make sure you explicitly ``.close()`` your connection objects (usually +``SSHClient``) if you're having any sort of hang/freeze at shutdown time! + +Doing so isn't strictly necessary 100% of the time, but it is almost always the +right solution if you run into the various corner cases that cause race +conditions, etc. |