diff options
| -rw-r--r-- | community/rstcheck/02-Close-the-multiprocessing.pool-after-use.patch | 59 | ||||
| -rw-r--r-- | community/rstcheck/APKBUILD | 9 | 
2 files changed, 64 insertions, 4 deletions
diff --git a/community/rstcheck/02-Close-the-multiprocessing.pool-after-use.patch b/community/rstcheck/02-Close-the-multiprocessing.pool-after-use.patch new file mode 100644 index 0000000000..d0680ef23d --- /dev/null +++ b/community/rstcheck/02-Close-the-multiprocessing.pool-after-use.patch @@ -0,0 +1,59 @@ +https://github.com/myint/rstcheck/pull/67 + +From 5e6e995305f66246e8f98acd15de2c39a75efa5b Mon Sep 17 00:00:00 2001 +From: Keith Maxwell <keith.maxwell@gmail.com> +Date: Mon, 11 May 2020 20:53:14 +0100 +Subject: [PATCH] Close the multiprocessing.pool after use + +So that the tests do not hang intermittently + +When preparing to release Alpine Linux 3.12, the tests for this package +would hang intermittently. This problem was isolated to the tests in +test.bash that run rstcheck.py over multiple files. + +The documentation for multiprocessing.pool explains that: + +> Warning multiprocessing.pool objects have internal resources that need +> to be properly managed (like any other resource) by using the pool as +> a context manager or by calling close() and terminate() manually. +> Failure to do this can lead to the process hanging on finalization. + +> Note that is not correct to rely on the garbage colletor to destroy +> the pool as CPython does not assure that the finalizer of the pool +> will be called (see object.__del__() for more information). + +https://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.pool + +Before this commit close() was not called on the multiprocessing pool; +after this commit close() is called. + +The change in this commit was tested in an Alpine Linux container: + +    podman run -ti --rm -v $PWD:/srv:Z -w /srv alpine:edge sh + +By running: + +    apk add alpine-sdk python3 py3-docutils py3-setuptools bash +    python3 setup.py build +    sed -i '1s|^#!/usr/bin/env python$|#!/usr/bin/python3|' rstcheck.py +    python3 ./test_rstcheck.py +    bash ./test.bash +--- + rstcheck.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/rstcheck.py b/rstcheck.py +index a13ec2b..959808a 100755 +--- a/rstcheck.py ++++ b/rstcheck.py +@@ -981,6 +981,7 @@ def main(): +         except (IOError, UnicodeError) as exception: +             output_message(exception) +             status = 1 ++        pool.close() +  +         return status +  +--  +2.26.2 + diff --git a/community/rstcheck/APKBUILD b/community/rstcheck/APKBUILD index 74399fe8c1..91ff6fecd0 100644 --- a/community/rstcheck/APKBUILD +++ b/community/rstcheck/APKBUILD @@ -2,7 +2,7 @@  # Maintainer: Keith Maxwell <keith.maxwell@gmail.com>  pkgname=rstcheck  pkgver=3.3.1 -pkgrel=2 +pkgrel=3  pkgdesc="Checks syntax of reStructuredText and code blocks nested within it"  url="https://github.com/myint/rstcheck"  arch="noarch" @@ -10,10 +10,10 @@ license="MIT"  depends="python3 py3-docutils py3-setuptools"  checkdepends="bash"  # use github because the test suite isn't part of the pypi package: -source="${pkgname}-${pkgver}.tar.gz::https://github.com/myint/$pkgname/archive/v$pkgver.tar.gz +source="$pkgname-$pkgver.tar.gz::https://github.com/myint/rstcheck/archive/v$pkgver.tar.gz  	01-python3-test-suite.patch +	02-Close-the-multiprocessing.pool-after-use.patch  	" -[ "$CARCH" = "ppc64le" ] && options="!check" # test suite livelocks on ppc64le  build() {  	python3 setup.py build @@ -29,4 +29,5 @@ package() {  }  sha512sums="07431d6c4789e4c005c4bf4be66f627c390f57e56f25b4f3db8b392bc7b904ca93c3e26145ab344e9b78109d2054e5f36167ab40b1ab023f08c85d6ec12cafbc  rstcheck-3.3.1.tar.gz -e2a86661595debc58e5cf919277afbd6b50abcd97ea6d5383294b9b346a4344d837927cd678738d0f01f01d450c5a99f84732f09aa696e19e588a732d9a4c773  01-python3-test-suite.patch" +e2a86661595debc58e5cf919277afbd6b50abcd97ea6d5383294b9b346a4344d837927cd678738d0f01f01d450c5a99f84732f09aa696e19e588a732d9a4c773  01-python3-test-suite.patch +4cdd8825fb2bb0e0522f57487b37cce9509ebd73a47257cece8044ffe78b32cfab9052c6506c031059ab2bcc02a4ac166c59df724cfdd55598e697ba03802cd5  02-Close-the-multiprocessing.pool-after-use.patch"  | 
