summaryrefslogtreecommitdiff
path: root/dev-python/sshtunnel
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-28 18:13:17 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-28 18:13:17 +0000
commit5c2e8b0dbdfde27f6def9ee5585c6611860d93da (patch)
tree65eba61d6c6648ab27e4f09f3c2c47bea5cf19ba /dev-python/sshtunnel
parentd96489883573aa2e8ac36d1957b2515f322d5c9b (diff)
downloadsrcux-5c2e8b0dbdfde27f6def9ee5585c6611860d93da.tar.gz
srcux-5c2e8b0dbdfde27f6def9ee5585c6611860d93da.tar.xz
srcux-5c2e8b0dbdfde27f6def9ee5585c6611860d93da.zip
Adding metadata
Diffstat (limited to 'dev-python/sshtunnel')
-rw-r--r--dev-python/sshtunnel/files/sshtunnel-0.4.0-dont-deadlock-tests.patch38
-rw-r--r--dev-python/sshtunnel/sshtunnel-0.4.0.ebuild20
2 files changed, 56 insertions, 2 deletions
diff --git a/dev-python/sshtunnel/files/sshtunnel-0.4.0-dont-deadlock-tests.patch b/dev-python/sshtunnel/files/sshtunnel-0.4.0-dont-deadlock-tests.patch
new file mode 100644
index 000000000000..1e5b06ac49b6
--- /dev/null
+++ b/dev-python/sshtunnel/files/sshtunnel-0.4.0-dont-deadlock-tests.patch
@@ -0,0 +1,38 @@
+From 96a056fb37684496c0495a831f8fd11b48ef01a9 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Sat, 22 Feb 2025 12:40:58 +0200
+Subject: [PATCH] Try to remove defunct threads from running_threads just in
+ case
+
+On Gentoo it was decided to remove server functionality from
+paramiko leading to the ssh-server to be dead before it could be
+properly removed from running_threads. This would lead to a hang where
+memory footprint of the process would grow with repeated "thread
+ssh-server now stopped" messages inevitably leading to an OOM condition.
+
+So try to remove defunct threads from running_threads after the fact to
+stop this problem from coming back and let it fail normally.
+
+Bug: https://github.com/pahaz/sshtunnel/issues/153
+Bug: https://bugs.gentoo.org/666619
+Bug: https://bugs.gentoo.org/683774
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+--- a/tests/test_forwarder.py
++++ b/tests/test_forwarder.py
+@@ -251,6 +251,13 @@ class SSHClientTest(unittest.TestCase):
+ who='tearDown')
+ if not x.is_alive():
+ self.log.info('thread {0} now stopped'.format(thread))
++ # Try to remove thread running_threads just in case
++ # the thread is dead but hasn't been properly removed.
++ # https://github.com/pahaz/sshtunnel/issues/153
++ try:
++ self.running_threads.remove(thread)
++ except ValueError:
++ pass
+
+ for attr in ['server', 'tc', 'ts', 'socks', 'ssockl', 'esockl']:
+ if hasattr(self, attr):
+--
+2.49.0
+
diff --git a/dev-python/sshtunnel/sshtunnel-0.4.0.ebuild b/dev-python/sshtunnel/sshtunnel-0.4.0.ebuild
index da7e904151a1..3710ee8b88db 100644
--- a/dev-python/sshtunnel/sshtunnel-0.4.0.ebuild
+++ b/dev-python/sshtunnel/sshtunnel-0.4.0.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+EPYTEST_XDIST=1
PYTHON_COMPAT=( python3_{9,10,11,12,13} )
inherit distutils-r1 pypi
@@ -14,6 +15,21 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 x86"
-RESTRICT="test"
-
RDEPEND="dev-python/paramiko[${PYTHON_USEDEP}]"
+BDEPEND="
+ test? (
+ dev-python/paramiko[server(+),${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/sshtunnel-0.4.0-dont-deadlock-tests.patch
+)
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # network-sandbox
+ tests/test_forwarder.py::SSHClientTest::test_gateway_ip_unresolvable_raises_exception
+)