Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/p/python-pytest-xprocess/python-pytest-xprocess_0.18.1-2_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/python-pytest-xprocess-0.18.1-27jcrcuxz/python-pytest-xprocess_0.18.1-2_all.buildinfo Get source package info: python-pytest-xprocess=0.18.1-2 Source URL: http://snapshot.notset.fr/mr/package/python-pytest-xprocess/0.18.1-2/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.71-2 automake=1:1.16.4-2 autopoint=0.21-4 autotools-dev=20180224.1+nmu1 base-files=12 base-passwd=3.5.52 bash=5.1-3+b1 binutils=2.37-7 binutils-common=2.37-7 binutils-x86-64-linux-gnu=2.37-7 bsdextrautils=2.37.2-3 bsdutils=1:2.37.2-3 build-essential=12.9 bzip2=1.0.8-4 ca-certificates=20210119 coreutils=8.32-4+b1 cpp=4:10.2.1-1 cpp-10=10.3.0-11 dash=0.5.11+git20210120+802ebd4-1 debconf=1.5.77 debhelper=13.5.2 debianutils=5.5-1 dh-autoreconf=20 dh-python=4.20201102+nmu1 dh-strip-nondeterminism=1.12.0-1 diffutils=1:3.7-5 docutils-common=0.16+dfsg-4 dpkg=1.20.9 dpkg-dev=1.20.9 dwz=0.14-1 file=1:5.39-3 findutils=4.8.0-1 g++=4:10.2.1-1 g++-10=10.3.0-11 gcc=4:10.2.1-1 gcc-10=10.3.0-11 gcc-10-base=10.3.0-11 gcc-11-base=11.2.0-8 gettext=0.21-4 gettext-base=0.21-4 grep=3.7-1 groff-base=1.22.4-7 gzip=1.10-4 hostname=3.23 init-system-helpers=1.60 intltool-debian=0.35.0+20060710.5 jq=1.6-2.1 libacl1=2.3.1-1 libarchive-zip-perl=1.68-1 libasan6=11.2.0-8 libatomic1=11.2.0-8 libattr1=1:2.5.1-1 libaudit-common=1:3.0.5-1 libaudit1=1:3.0.5-1 libbinutils=2.37-7 libblkid1=2.37.2-3 libbz2-1.0=1.0.8-4 libc-bin=2.32-4 libc-dev-bin=2.32-4 libc6=2.32-4 libc6-dev=2.32-4 libcap-ng0=0.7.9-2.2+b1 libcap2=1:2.44-1 libcc1-0=11.2.0-8 libcom-err2=1.46.4-1 libcrypt-dev=1:4.4.25-2 libcrypt1=1:4.4.25-2 libctf-nobfd0=2.37-7 libctf0=2.37-7 libdb5.3=5.3.28+dfsg1-0.8 libdebconfclient0=0.260 libdebhelper-perl=13.5.2 libdpkg-perl=1.20.9 libelf1=0.185-2 libexpat1=2.4.1-2+b1 libffi8=3.4.2-2 libfile-stripnondeterminism-perl=1.12.0-1 libgcc-10-dev=10.3.0-11 libgcc-s1=11.2.0-8 libgcrypt20=1.9.4-3+b1 libgdbm-compat4=1.21-1 libgdbm6=1.21-1 libgmp10=2:6.2.1+dfsg-2 libgomp1=11.2.0-8 libgpg-error0=1.42-3 libgssapi-krb5-2=1.18.3-7 libicu67=67.1-7 libisl23=0.23-1 libitm1=11.2.0-8 libjq1=1.6-2.1 libjs-jquery=3.5.1+dfsg+~3.5.5-7 libjs-sphinxdoc=4.2.0-2 libjs-underscore=1.9.1~dfsg-4 libk5crypto3=1.18.3-7 libkeyutils1=1.6.1-2 libkrb5-3=1.18.3-7 libkrb5support0=1.18.3-7 liblsan0=11.2.0-8 liblz4-1=1.9.3-2 liblzma5=5.2.5-2 libmagic-mgc=1:5.39-3 libmagic1=1:5.39-3 libmount1=2.37.2-3 libmpc3=1.2.0-1 libmpdec3=2.5.1-2 libmpfr6=4.1.0-3 libncursesw6=6.2+20210905-1 libnsl-dev=1.3.0-2 libnsl2=1.3.0-2 libonig5=6.9.7.1-2 libpam-modules=1.4.0-10 libpam-modules-bin=1.4.0-10 libpam-runtime=1.4.0-10 libpam0g=1.4.0-10 libpcre2-8-0=10.36-2 libpcre3=2:8.39-13 libperl5.32=5.32.1-6 libpipeline1=1.5.3-1 libpython3-stdlib=3.9.2-3 libpython3.9-minimal=3.9.7-4 libpython3.9-stdlib=3.9.7-4 libquadmath0=11.2.0-8 libreadline8=8.1-2 libseccomp2=2.5.2-1 libselinux1=3.1-3 libsigsegv2=2.13-1 libsmartcols1=2.37.2-3 libsqlite3-0=3.36.0-2 libssl1.1=1.1.1l-1 libstdc++-10-dev=10.3.0-11 libstdc++6=11.2.0-8 libsub-override-perl=0.09-2 libsystemd0=247.9-3 libtinfo6=6.2+20210905-1 libtirpc-common=1.3.2-2 libtirpc-dev=1.3.2-2 libtirpc3=1.3.2-2 libtool=2.4.6-15 libtsan0=11.2.0-8 libubsan1=11.2.0-8 libuchardet0=0.0.7-1 libudev1=247.9-3 libunistring2=0.9.10-6 libuuid1=2.37.2-3 libxml2=2.9.12+dfsg-5 libzstd1=1.4.8+dfsg-2.1 linux-libc-dev=5.14.6-2 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-5 make=4.3-4.1 man-db=2.9.4-2 mawk=1.3.4.20200120-2 media-types=4.0.0 ncurses-base=6.2+20210905-1 ncurses-bin=6.2+20210905-1 openssl=1.1.1l-1 openstack-pkg-tools=117 patch=2.7.6-7 perl=5.32.1-6 perl-base=5.32.1-6 perl-modules-5.32=5.32.1-6 po-debconf=1.0.21+nmu1 python-babel-localedata=2.8.0+dfsg.1-7 python-pip-whl=20.3.4-4 python3=3.9.2-3 python3-alabaster=0.7.12-1 python3-all=3.9.2-3 python3-attr=20.3.0-1 python3-babel=2.8.0+dfsg.1-7 python3-certifi=2020.6.20-1 python3-chardet=4.0.0-1 python3-distutils=3.9.7-1 python3-docutils=0.16+dfsg-4 python3-idna=2.10-1 python3-imagesize=1.2.0-2 python3-importlib-metadata=4.6.4-1 python3-iniconfig=1.1.1-1 python3-jinja2=2.11.3-1 python3-lib2to3=3.9.7-1 python3-markupsafe=1.1.1-1+b3 python3-minimal=3.9.2-3 python3-more-itertools=4.2.0-3 python3-packaging=20.9-2 python3-pip=20.3.4-4 python3-pkg-resources=52.0.0-4 python3-pluggy=0.13.0-7 python3-psutil=5.8.0-1 python3-py=1.10.0-1 python3-pygments=2.7.1+dfsg-2.1 python3-pyparsing=2.4.7-1 python3-pytest=6.2.5-1 python3-requests=2.25.1+dfsg-2 python3-roman=2.0.0-5 python3-setuptools=52.0.0-4 python3-setuptools-scm=6.0.1-1 python3-six=1.16.0-2 python3-snowballstemmer=2.1.0-2 python3-sphinx=4.2.0-2 python3-toml=0.10.2-1 python3-tz=2021.1-1 python3-urllib3=1.26.5-1~exp1 python3-wheel=0.34.2-1 python3-zipp=1.0.0-3 python3.9=3.9.7-4 python3.9-minimal=3.9.7-4 readline-common=8.1-2 rpcsvc-proto=1.4.2-4 sed=4.8-1 sensible-utils=0.0.17 sgml-base=1.30 sphinx-common=4.2.0-2 sysvinit-utils=3.00-1 tar=1.34+dfsg-1 tzdata=2021a-1 util-linux=2.37.2-3 xml-core=0.18+nmu1 xz-utils=5.2.5-2 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20211002T025114Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20211002T025114Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210927T145049Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d python-pytest-xprocess=0.18.1-2 && mkdir -p /build/python-pytest-xprocess-PGYEmC && dpkg-source --no-check -x /*.dsc /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1 && chown -R builduser:builduser /build/python-pytest-xprocess-PGYEmC" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1632734772" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/python-pytest-xprocess-PGYEmC /tmp/python-pytest-xprocess-0.18.1-27jcrcuxz bookworm /dev/null deb http://snapshot.notset.fr/archive/debian/20210927T145049Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.FxMGmvIDk3 as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.FxMGmvIDk3 Reading package lists... Building dependency tree... util-linux is already the newest version (2.37.2-3). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 397 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20210927T145049Z unstable/main amd64 libfakeroot amd64 1.26-1 [47.3 kB] Get:2 http://snapshot.notset.fr/archive/debian/20210927T145049Z unstable/main amd64 fakeroot amd64 1.26-1 [87.1 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 134 kB in 0s (1027 kB/s) Selecting previously unselected package libfakeroot:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 4668 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.26-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.26-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.26-1_amd64.deb ... Unpacking fakeroot (1.26-1) ... Setting up libfakeroot:amd64 (1.26-1) ... Setting up fakeroot (1.26-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.32-4) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20211002T025114Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20211002T025114Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210927T145049Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.FxMGmvIDk3 Get:1 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm InRelease [128 kB] Hit:2 http://snapshot.notset.fr/archive/debian/20210927T145049Z unstable InRelease Ign:3 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main amd64 Packages Get:3 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main Sources [11.6 MB] Get:4 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main amd64 Packages [11.2 MB] Fetched 23.0 MB in 19s (1187 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.FxMGmvIDk3 I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d python-pytest-xprocess=0.18.1-2 && mkdir -p /build/python-pytest-xprocess-PGYEmC && dpkg-source --no-check -x /*.dsc /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1 && chown -R builduser:builduser /build/python-pytest-xprocess-PGYEmC"' exec /tmp/mmdebstrap.FxMGmvIDk3 Reading package lists... NOTICE: 'python-pytest-xprocess' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/python-team/packages/python-pytest-xprocess.git Please use: git clone https://salsa.debian.org/python-team/packages/python-pytest-xprocess.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 29.4 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main python-pytest-xprocess 0.18.1-2 (dsc) [2327 B] Get:2 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main python-pytest-xprocess 0.18.1-2 (tar) [24.5 kB] Get:3 http://snapshot.notset.fr/archive/debian/20211002T025114Z bookworm/main python-pytest-xprocess 0.18.1-2 (diff) [2540 B] Fetched 29.4 kB in 0s (237 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'python-pytest-xprocess_0.18.1-2.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting python-pytest-xprocess in /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1 dpkg-source: info: unpacking python-pytest-xprocess_0.18.1.orig.tar.gz dpkg-source: info: unpacking python-pytest-xprocess_0.18.1-2.debian.tar.xz I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1632734772" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.FxMGmvIDk3 dpkg-buildpackage: info: source package python-pytest-xprocess dpkg-buildpackage: info: source version 0.18.1-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Thomas Goirand dpkg-source --before-build . dpkg-source: info: using options from python-pytest-xprocess-0.18.1/debian/source/options: --extend-diff-ignore=^[^/]*[.]egg-info/ fakeroot debian/rules clean make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh clean --with python3,sphinxdoc debian/rules override_dh_auto_clean make[1]: Entering directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions rm -rf build .stestr find . -iname '*.pyc' -delete for i in $(find . -type d -iname __pycache__) ; do rm -rf $i ; done make[1]: Leaving directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' dh_clean debian/rules build-indep make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh build-indep --with python3,sphinxdoc dh_update_autotools_config -i dh_autoreconf -i dh_auto_configure -i dh_auto_configure: warning: Please use the third-party "pybuild" build system instead of python-distutils dh_auto_configure: warning: This feature will be removed in compat 12. debian/rules override_dh_auto_build make[1]: Entering directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' debian/rules override_dh_auto_test make[1]: Entering directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' create-stamp debian/debhelper-build-stamp fakeroot debian/rules binary-indep make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh binary-indep --with python3,sphinxdoc dh_testroot -i dh_prep -i debian/rules override_dh_auto_install make[1]: Entering directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions pkgos-dh_auto_install --no-py2 --in-tmp + PKGOS_USE_PY2=yes + PKGOS_USE_PY3=yes + PKGOS_IN_TMP=no + PKGOS_USE_PY2=no + shift + PKGOS_IN_TMP=yes + shift + dpkg-parsechangelog -SSource + SRC_PKG_NAME=python-pytest-xprocess + echo python-pytest-xprocess + sed s/python-// + PY_MODULE_NAME=pytest-xprocess + [ no = yes ] + [ yes = yes ] + py3versions -vr + PYTHON3S=3.9 + [ no = yes ] + [ yes = yes ] + [ yes = yes ] + TARGET_DIR=tmp + pwd + python3.9 setup.py install --install-layout=deb --root /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp running install running build running build_py creating build creating build/lib copying pytest_xprocess.py -> build/lib copying xprocess.py -> build/lib running install_lib creating /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp creating /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr creating /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib creating /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3 creating /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3/dist-packages copying build/lib/pytest_xprocess.py -> /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3/dist-packages copying build/lib/xprocess.py -> /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3/dist-packages byte-compiling /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3/dist-packages/pytest_xprocess.py to pytest_xprocess.cpython-39.pyc byte-compiling /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3/dist-packages/xprocess.py to xprocess.cpython-39.pyc running install_egg_info running egg_info creating pytest_xprocess.egg-info writing pytest_xprocess.egg-info/PKG-INFO writing dependency_links to pytest_xprocess.egg-info/dependency_links.txt writing entry points to pytest_xprocess.egg-info/entry_points.txt writing requirements to pytest_xprocess.egg-info/requires.txt writing top-level names to pytest_xprocess.egg-info/top_level.txt writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' reading manifest file 'pytest_xprocess.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGELOG' warning: no directories found matching 'example' writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' Copying pytest_xprocess.egg-info to /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3/dist-packages/pytest_xprocess-0.18.1.egg-info Skipping SOURCES.txt running install_scripts + pwd + rm -rf /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/python*/usr/lib/python*/dist-packages/*.pth + pwd + rm -rf /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python*/dist-packages/*.pth + pwd + [ -d /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/python-pytest-xprocess/usr/bin ] set -e ; for pyvers in 3.9; do \ PYTHONPATH=/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/debian/tmp/usr/lib/python3/dist-packages python$pyvers -m pytest -v ; \ done ============================= test session starts ============================== platform linux -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 -- /usr/bin/python3.9 cachedir: .pytest_cache rootdir: /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1, configfile: tox.ini plugins: xprocess-0.18.1 collecting ... collected 45 items tests/test_callback.py::test_callback_success[s1] PASSED [ 2%] tests/test_callback.py::test_callback_success[s2] PASSED [ 4%] tests/test_callback.py::test_callback_success[s3] PASSED [ 6%] tests/test_callback.py::test_callback_fail[s1] PASSED [ 8%] tests/test_callback.py::test_callback_fail[s2] PASSED [ 11%] tests/test_callback.py::test_callback_fail[s3] PASSED [ 13%] tests/test_functional_workflow.py::test_functional_work_flow FAILED [ 15%] tests/test_interruption_clean_up.py::test_interruption_cleanup PASSED [ 17%] tests/test_interruption_clean_up.py::test_interruption_does_not_cleanup FAILED [ 20%] tests/test_process_initialization.py::test_servers_start[s1] PASSED [ 22%] tests/test_process_initialization.py::test_servers_start[s2] PASSED [ 24%] tests/test_process_initialization.py::test_servers_start[s3] PASSED [ 26%] tests/test_process_initialization.py::test_ensure_not_restart[s1] PASSED [ 28%] tests/test_process_initialization.py::test_ensure_not_restart[s2] PASSED [ 31%] tests/test_process_initialization.py::test_ensure_not_restart[s3] PASSED [ 33%] tests/test_process_initialization.py::test_startup_detection_max_read_lines[s1-started-20] PASSED [ 35%] tests/test_process_initialization.py::test_startup_detection_max_read_lines[s2-spam, bacon, eggs-30] PASSED [ 37%] tests/test_process_initialization.py::test_startup_detection_max_read_lines[s3-finally started-62] PASSED [ 40%] tests/test_process_initialization.py::test_runtime_error_on_start_fail[s1] PASSED [ 42%] tests/test_process_initialization.py::test_runtime_error_on_start_fail[s2] PASSED [ 44%] tests/test_process_initialization.py::test_runtime_error_on_start_fail[s3] PASSED [ 46%] tests/test_process_initialization.py::test_popen_kwargs[s1] PASSED [ 48%] tests/test_process_initialization.py::test_popen_kwargs[s2] PASSED [ 51%] tests/test_process_initialization.py::test_popen_kwargs[s3] PASSED [ 53%] tests/test_process_termination.py::test_clean_shutdown[s1] FAILED [ 55%] tests/test_process_termination.py::test_clean_shutdown[s2] FAILED [ 57%] tests/test_process_termination.py::test_clean_shutdown[s3] FAILED [ 60%] tests/test_process_termination.py::test_terminate_no_pid[s1] PASSED [ 62%] tests/test_process_termination.py::test_terminate_no_pid[s2] PASSED [ 64%] tests/test_process_termination.py::test_terminate_no_pid[s3] PASSED [ 66%] tests/test_process_termination.py::test_terminate_only_parent[s1] PASSED [ 68%] tests/test_process_termination.py::test_terminate_only_parent[s2] PASSED [ 71%] tests/test_process_termination.py::test_terminate_only_parent[s3] PASSED [ 73%] tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s1] FAILED [ 75%] tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s2] FAILED [ 77%] tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s3] FAILED [ 80%] tests/test_process_termination.py::test_return_value_on_failure[s1] PASSED [ 82%] tests/test_process_termination.py::test_return_value_on_failure[s2] PASSED [ 84%] tests/test_process_termination.py::test_return_value_on_failure[s3] PASSED [ 86%] tests/test_resource_cleanup.py::test_0 PASSED [ 88%] tests/test_resource_cleanup.py::test_1 PASSED [ 91%] tests/test_resource_cleanup.py::test_2 PASSED [ 93%] tests/test_startup_timeout.py::test_timeout_raise_exception[s1] PASSED [ 95%] tests/test_startup_timeout.py::test_timeout_raise_exception[s2] PASSED [ 97%] tests/test_startup_timeout.py::test_timeout_raise_exception[s3] PASSED [100%] =================================== FAILURES =================================== __________________________ test_functional_work_flow ___________________________ testdir = tcp_port = 44177 def test_functional_work_flow(testdir, tcp_port): server_path = Path(__file__).parent.joinpath("server.py").absolute() testdir.makepyfile( """ import sys import socket from xprocess import ProcessStarter def test_server(request, xprocess): port = %r data = "spam\\n" server_path = %r class Starter(ProcessStarter): pattern = "started" max_read_lines = 200 args = [sys.executable, server_path, port] # required so test won't hang on pytest_unconfigure xprocess.proc_wait_timeout = 1 xprocess.ensure("server_workflow_test", Starter) with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.connect(("localhost", port)) sock.sendall(bytes(data, "utf-8")) received = str(sock.recv(1024), "utf-8") assert received == data.upper() """ % (tcp_port, str(server_path)) ) result = testdir.runpytest() result.stdout.fnmatch_lines("*1 passed*") result = testdir.runpytest("--xshow") result.stdout.fnmatch_lines("*LIVE*") result = testdir.runpytest("--xkill") > result.stdout.fnmatch_lines("*TERMINATED*") E Failed: nomatch: '*TERMINATED*' E and: "could not terminated process [psutil.Process(pid=177694, name='python3.9', status='zombie', started='13:35:13'), psutil.Process(pid=177695, name='python3.9', status='zombie', started='13:35:13'), psutil.Process(pid=177693, name='python3.9', status='zombie', started='13:35:13')]" E and: '177692 server_workflow_test FAILED TO TERMINATE' E and: "pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'." E remains unmatched: '*TERMINATED*' /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/test_functional_workflow.py:40: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_functional_work_flow0 plugins: xprocess-0.18.1 collected 1 item test_functional_work_flow.py . [100%] ============================== 1 passed in 0.34s =============================== pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. 177692 server_workflow_test LIVE /tmp/pytest-of-builduser/pytest-0/test_functional_work_flow0/.pytest_cache/d/.xprocess/server_workflow_test/xprocess.log pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. could not terminated process [psutil.Process(pid=177694, name='python3.9', status='zombie', started='13:35:13'), psutil.Process(pid=177695, name='python3.9', status='zombie', started='13:35:13'), psutil.Process(pid=177693, name='python3.9', status='zombie', started='13:35:13')] 177692 server_workflow_test FAILED TO TERMINATE pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. ______________________ test_interruption_does_not_cleanup ______________________ testdir = tcp_port = 43629 def test_interruption_does_not_cleanup(testdir, tcp_port): server_path = Path(__file__).parent.joinpath("server.py").absolute() testdir.makepyfile( """ import sys import socket from xprocess import ProcessStarter def test_servers_start(request, xprocess): port = %r server_path = %r class Starter(ProcessStarter): pattern = "started" args = [sys.executable, server_path, port] xprocess.ensure("server_test_interrupt_no_terminate", Starter) raise KeyboardInterrupt """ % (tcp_port, str(server_path)) ) result = testdir.runpytest_subprocess() result.stdout.fnmatch_lines("*KeyboardInterrupt*") result = testdir.runpytest("--xshow") result.stdout.fnmatch_lines("*LIVE*") result = testdir.runpytest("--xkill") > result.stdout.fnmatch_lines("*TERMINATED*") E Failed: nomatch: '*TERMINATED*' E and: "could not terminated process [psutil.Process(pid=177705, name='python3.9', status='zombie', started='13:36:37'), psutil.Process(pid=177703, name='python3.9', status='zombie', started='13:36:37'), psutil.Process(pid=177704, name='python3.9', status='zombie', started='13:36:37'), psutil.Process(pid=177702, name='python3.9', status='zombie', started='13:36:37')]" E and: '177702 server_test_interrupt_no_terminate FAILED TO TERMINATE' E and: "pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'." E remains unmatched: '*TERMINATED*' /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/test_interruption_clean_up.py:60: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.9 -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_interruption_does_not_cleanup0/runpytest-0 in: /tmp/pytest-of-builduser/pytest-0/test_interruption_does_not_cleanup0 ============================= test session starts ============================== platform linux -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_interruption_does_not_cleanup0 plugins: xprocess-0.18.1 collected 1 item test_interruption_does_not_cleanup.py !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! /tmp/pytest-of-builduser/pytest-0/test_interruption_does_not_cleanup0/test_interruption_does_not_cleanup.py:15: KeyboardInterrupt (to show a full traceback on KeyboardInterrupt use --full-trace) ============================ no tests ran in 0.89s ============================= pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. 177702 server_test_interrupt_no_terminate LIVE /tmp/pytest-of-builduser/pytest-0/test_interruption_does_not_cleanup0/.pytest_cache/d/.xprocess/server_test_interrupt_no_terminate/xprocess.log pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. could not terminated process [psutil.Process(pid=177705, name='python3.9', status='zombie', started='13:36:37'), psutil.Process(pid=177703, name='python3.9', status='zombie', started='13:36:37'), psutil.Process(pid=177704, name='python3.9', status='zombie', started='13:36:37'), psutil.Process(pid=177702, name='python3.9', status='zombie', started='13:36:37')] 177702 server_test_interrupt_no_terminate FAILED TO TERMINATE pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. ___________________________ test_clean_shutdown[s1] ____________________________ tcp_port = 51383, proc_name = 's1' xprocess = @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_clean_shutdown(tcp_port, proc_name, xprocess): class Starter(ProcessStarter): pattern = "started" args = [sys.executable, server_path, tcp_port] xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) assert info.isrunning() children = psutil.Process(info.pid).children() > assert info.terminate() == 1 E assert -1 == 1 E +-1 E -1 tests/test_process_termination.py:22: AssertionError ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/.pytest_cache/d/.xprocess/s1$ /usr/bin/python3.9 /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/server.py 51383 process 's1' started pid=177721 0 , % /.%,@%@._%%# #/%/ % 1 , % /.%,@%@._%%# #/%/ % 2 , % /.%,@%@._%%# #/%/ % 3 , % /.%,@%@._%%# #/%/ % 4 , % /.%,@%@._%%# #/%/ % Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū started s1 process startup detected could not terminated process [psutil.Process(pid=177724, name='python3.9', status='zombie', started='13:37:29'), psutil.Process(pid=177722, name='python3.9', status='zombie', started='13:37:29'), psutil.Process(pid=177723, name='python3.9', status='zombie', started='13:37:29')] ___________________________ test_clean_shutdown[s2] ____________________________ tcp_port = 52117, proc_name = 's2' xprocess = @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_clean_shutdown(tcp_port, proc_name, xprocess): class Starter(ProcessStarter): pattern = "started" args = [sys.executable, server_path, tcp_port] xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) assert info.isrunning() children = psutil.Process(info.pid).children() > assert info.terminate() == 1 E assert -1 == 1 E +-1 E -1 tests/test_process_termination.py:22: AssertionError ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/.pytest_cache/d/.xprocess/s2$ /usr/bin/python3.9 /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/server.py 52117 process 's2' started pid=177725 0 , % /.%,@%@._%%# #/%/ % 1 , % /.%,@%@._%%# #/%/ % 2 , % /.%,@%@._%%# #/%/ % 3 , % /.%,@%@._%%# #/%/ % 4 , % /.%,@%@._%%# #/%/ % Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū started s2 process startup detected could not terminated process [psutil.Process(pid=177728, name='python3.9', status='zombie', started='13:38:10'), psutil.Process(pid=177726, name='python3.9', status='zombie', started='13:38:10'), psutil.Process(pid=177727, name='python3.9', status='zombie', started='13:38:10')] ___________________________ test_clean_shutdown[s3] ____________________________ tcp_port = 39023, proc_name = 's3' xprocess = @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_clean_shutdown(tcp_port, proc_name, xprocess): class Starter(ProcessStarter): pattern = "started" args = [sys.executable, server_path, tcp_port] xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) assert info.isrunning() children = psutil.Process(info.pid).children() > assert info.terminate() == 1 E assert -1 == 1 E +-1 E -1 tests/test_process_termination.py:22: AssertionError ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/.pytest_cache/d/.xprocess/s3$ /usr/bin/python3.9 /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/server.py 39023 process 's3' started pid=177729 0 , % /.%,@%@._%%# #/%/ % 1 , % /.%,@%@._%%# #/%/ % 2 , % /.%,@%@._%%# #/%/ % 3 , % /.%,@%@._%%# #/%/ % 4 , % /.%,@%@._%%# #/%/ % Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū started s3 process startup detected could not terminated process [psutil.Process(pid=177730, name='python3.9', status='zombie', started='13:38:51'), psutil.Process(pid=177731, name='python3.9', status='zombie', started='13:38:51'), psutil.Process(pid=177732, name='python3.9', status='zombie', started='13:38:51')] ____________________ test_sigkill_after_failed_sigterm[s1] _____________________ self = @functools.wraps(fun) def wrapper(self): try: # case 1: we previously entered oneshot() ctx > ret = self._cache[fun] E AttributeError: _cache /usr/lib/python3/dist-packages/psutil/_common.py:447: AttributeError During handling of the above exception, another exception occurred: self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: > return fun(self, *args, **kwargs) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1576: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @functools.wraps(fun) def wrapper(self): try: # case 1: we previously entered oneshot() ctx ret = self._cache[fun] except AttributeError: # case 2: we never entered oneshot() ctx > return fun(self) /usr/lib/python3/dist-packages/psutil/_common.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @wrap_exceptions @memoize_when_activated def _parse_stat_file(self): """Parse /proc/{pid}/stat file and return a dict with various process info. Using "man proc" as a reference: where "man proc" refers to position N always substract 3 (e.g ppid position 4 in 'man proc' == position 1 in here). The return value is cached in case oneshot() ctx manager is in use. """ > with open_binary("%s/%s/stat" % (self._procfs_path, self.pid)) as f: /usr/lib/python3/dist-packages/psutil/_pslinux.py:1618: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fname = '/proc/177757/stat', kwargs = {} def open_binary(fname, **kwargs): > return open(fname, "rb", **kwargs) E FileNotFoundError: [Errno 2] No such file or directory: '/proc/177757/stat' /usr/lib/python3/dist-packages/psutil/_common.py:711: FileNotFoundError During handling of the above exception, another exception occurred: self = psutil.Process(pid=177757, status='terminated'), pid = 177757 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if not _PY3 and not isinstance(pid, (int, long)): raise TypeError('pid must be an integer (got %r)' % pid) if pid < 0: raise ValueError('pid must be a positive integer (got %s)' % pid) self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL # cache creation time for later use in is_running() method try: > self.create_time() /usr/lib/python3/dist-packages/psutil/__init__.py:354: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=177757, status='terminated') def create_time(self): """The process creation time as a floating point number expressed in seconds since the epoch. The return value is cached after first call. """ if self._create_time is None: > self._create_time = self._proc.create_time() /usr/lib/python3/dist-packages/psutil/__init__.py:710: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: > return fun(self, *args, **kwargs) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1576: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @wrap_exceptions def create_time(self): > ctime = float(self._parse_stat_file()['create_time']) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1788: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: return fun(self, *args, **kwargs) except PermissionError: raise AccessDenied(self.pid, self._name) except ProcessLookupError: raise NoSuchProcess(self.pid, self._name) except FileNotFoundError: if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): > raise NoSuchProcess(self.pid, self._name) E psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=177757) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1583: NoSuchProcess During handling of the above exception, another exception occurred: tcp_port = 60065, proc_name = 's1' xprocess = @pytest.mark.skipif( sys.platform == "win32", reason="on windows SIGTERM is treated as an alias for kill()", ) @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_sigkill_after_failed_sigterm(tcp_port, proc_name, xprocess): # explicitly tell xprocess_starter fixture to make # server instance ignore SIGTERM class Starter(ProcessStarter): pattern = "started" args = [sys.executable, server_path, tcp_port, "--ignore-sigterm"] xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) # since terminate with sigterm will fail, set a lower # timeout before sending sigkill so tests won't take too long > assert ( info.terminate(timeout=2) == 1 or psutil.Process(info.pid).status() == psutil.STATUS_ZOMBIE ) tests/test_process_termination.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/psutil/__init__.py:326: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=177757, status='terminated'), pid = 177757 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if not _PY3 and not isinstance(pid, (int, long)): raise TypeError('pid must be an integer (got %r)' % pid) if pid < 0: raise ValueError('pid must be a positive integer (got %s)' % pid) self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL # cache creation time for later use in is_running() method try: self.create_time() except AccessDenied: # We should never get here as AFAIK we're able to get # process creation time on all platforms even as a # limited user. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = 'no process found with pid %s' % pid > raise NoSuchProcess(pid, None, msg) E psutil.NoSuchProcess: psutil.NoSuchProcess no process found with pid 177757 /usr/lib/python3/dist-packages/psutil/__init__.py:367: NoSuchProcess ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/.pytest_cache/d/.xprocess/s1$ /usr/bin/python3.9 /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/server.py 60065 --ignore-sigterm process 's1' started pid=177757 0 , % /.%,@%@._%%# #/%/ % 1 , % /.%,@%@._%%# #/%/ % 2 , % /.%,@%@._%%# #/%/ % 3 , % /.%,@%@._%%# #/%/ % 4 , % /.%,@%@._%%# #/%/ % Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū started s1 process startup detected could not terminated process [psutil.Process(pid=177758, name='python3.9', status='zombie', started='13:41:37'), psutil.Process(pid=177759, name='python3.9', status='zombie', started='13:41:37'), psutil.Process(pid=177760, name='python3.9', status='zombie', started='13:41:37')] ____________________ test_sigkill_after_failed_sigterm[s2] _____________________ self = @functools.wraps(fun) def wrapper(self): try: # case 1: we previously entered oneshot() ctx > ret = self._cache[fun] E AttributeError: _cache /usr/lib/python3/dist-packages/psutil/_common.py:447: AttributeError During handling of the above exception, another exception occurred: self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: > return fun(self, *args, **kwargs) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1576: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @functools.wraps(fun) def wrapper(self): try: # case 1: we previously entered oneshot() ctx ret = self._cache[fun] except AttributeError: # case 2: we never entered oneshot() ctx > return fun(self) /usr/lib/python3/dist-packages/psutil/_common.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @wrap_exceptions @memoize_when_activated def _parse_stat_file(self): """Parse /proc/{pid}/stat file and return a dict with various process info. Using "man proc" as a reference: where "man proc" refers to position N always substract 3 (e.g ppid position 4 in 'man proc' == position 1 in here). The return value is cached in case oneshot() ctx manager is in use. """ > with open_binary("%s/%s/stat" % (self._procfs_path, self.pid)) as f: /usr/lib/python3/dist-packages/psutil/_pslinux.py:1618: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fname = '/proc/177761/stat', kwargs = {} def open_binary(fname, **kwargs): > return open(fname, "rb", **kwargs) E FileNotFoundError: [Errno 2] No such file or directory: '/proc/177761/stat' /usr/lib/python3/dist-packages/psutil/_common.py:711: FileNotFoundError During handling of the above exception, another exception occurred: self = psutil.Process(pid=177761, status='terminated'), pid = 177761 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if not _PY3 and not isinstance(pid, (int, long)): raise TypeError('pid must be an integer (got %r)' % pid) if pid < 0: raise ValueError('pid must be a positive integer (got %s)' % pid) self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL # cache creation time for later use in is_running() method try: > self.create_time() /usr/lib/python3/dist-packages/psutil/__init__.py:354: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=177761, status='terminated') def create_time(self): """The process creation time as a floating point number expressed in seconds since the epoch. The return value is cached after first call. """ if self._create_time is None: > self._create_time = self._proc.create_time() /usr/lib/python3/dist-packages/psutil/__init__.py:710: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: > return fun(self, *args, **kwargs) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1576: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @wrap_exceptions def create_time(self): > ctime = float(self._parse_stat_file()['create_time']) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1788: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: return fun(self, *args, **kwargs) except PermissionError: raise AccessDenied(self.pid, self._name) except ProcessLookupError: raise NoSuchProcess(self.pid, self._name) except FileNotFoundError: if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): > raise NoSuchProcess(self.pid, self._name) E psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=177761) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1583: NoSuchProcess During handling of the above exception, another exception occurred: tcp_port = 53319, proc_name = 's2' xprocess = @pytest.mark.skipif( sys.platform == "win32", reason="on windows SIGTERM is treated as an alias for kill()", ) @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_sigkill_after_failed_sigterm(tcp_port, proc_name, xprocess): # explicitly tell xprocess_starter fixture to make # server instance ignore SIGTERM class Starter(ProcessStarter): pattern = "started" args = [sys.executable, server_path, tcp_port, "--ignore-sigterm"] xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) # since terminate with sigterm will fail, set a lower # timeout before sending sigkill so tests won't take too long > assert ( info.terminate(timeout=2) == 1 or psutil.Process(info.pid).status() == psutil.STATUS_ZOMBIE ) tests/test_process_termination.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/psutil/__init__.py:326: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=177761, status='terminated'), pid = 177761 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if not _PY3 and not isinstance(pid, (int, long)): raise TypeError('pid must be an integer (got %r)' % pid) if pid < 0: raise ValueError('pid must be a positive integer (got %s)' % pid) self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL # cache creation time for later use in is_running() method try: self.create_time() except AccessDenied: # We should never get here as AFAIK we're able to get # process creation time on all platforms even as a # limited user. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = 'no process found with pid %s' % pid > raise NoSuchProcess(pid, None, msg) E psutil.NoSuchProcess: psutil.NoSuchProcess no process found with pid 177761 /usr/lib/python3/dist-packages/psutil/__init__.py:367: NoSuchProcess ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/.pytest_cache/d/.xprocess/s2$ /usr/bin/python3.9 /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/server.py 53319 --ignore-sigterm process 's2' started pid=177761 0 , % /.%,@%@._%%# #/%/ % 1 , % /.%,@%@._%%# #/%/ % 2 , % /.%,@%@._%%# #/%/ % 3 , % /.%,@%@._%%# #/%/ % 4 , % /.%,@%@._%%# #/%/ % Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū started s2 process startup detected could not terminated process [psutil.Process(pid=177764, name='python3.9', status='zombie', started='13:41:42'), psutil.Process(pid=177762, name='python3.9', status='zombie', started='13:41:42'), psutil.Process(pid=177763, name='python3.9', status='zombie', started='13:41:42')] ____________________ test_sigkill_after_failed_sigterm[s3] _____________________ self = @functools.wraps(fun) def wrapper(self): try: # case 1: we previously entered oneshot() ctx > ret = self._cache[fun] E AttributeError: _cache /usr/lib/python3/dist-packages/psutil/_common.py:447: AttributeError During handling of the above exception, another exception occurred: self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: > return fun(self, *args, **kwargs) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1576: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @functools.wraps(fun) def wrapper(self): try: # case 1: we previously entered oneshot() ctx ret = self._cache[fun] except AttributeError: # case 2: we never entered oneshot() ctx > return fun(self) /usr/lib/python3/dist-packages/psutil/_common.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @wrap_exceptions @memoize_when_activated def _parse_stat_file(self): """Parse /proc/{pid}/stat file and return a dict with various process info. Using "man proc" as a reference: where "man proc" refers to position N always substract 3 (e.g ppid position 4 in 'man proc' == position 1 in here). The return value is cached in case oneshot() ctx manager is in use. """ > with open_binary("%s/%s/stat" % (self._procfs_path, self.pid)) as f: /usr/lib/python3/dist-packages/psutil/_pslinux.py:1618: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fname = '/proc/177765/stat', kwargs = {} def open_binary(fname, **kwargs): > return open(fname, "rb", **kwargs) E FileNotFoundError: [Errno 2] No such file or directory: '/proc/177765/stat' /usr/lib/python3/dist-packages/psutil/_common.py:711: FileNotFoundError During handling of the above exception, another exception occurred: self = psutil.Process(pid=177765, status='terminated'), pid = 177765 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if not _PY3 and not isinstance(pid, (int, long)): raise TypeError('pid must be an integer (got %r)' % pid) if pid < 0: raise ValueError('pid must be a positive integer (got %s)' % pid) self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL # cache creation time for later use in is_running() method try: > self.create_time() /usr/lib/python3/dist-packages/psutil/__init__.py:354: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=177765, status='terminated') def create_time(self): """The process creation time as a floating point number expressed in seconds since the epoch. The return value is cached after first call. """ if self._create_time is None: > self._create_time = self._proc.create_time() /usr/lib/python3/dist-packages/psutil/__init__.py:710: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: > return fun(self, *args, **kwargs) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1576: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = @wrap_exceptions def create_time(self): > ctime = float(self._parse_stat_file()['create_time']) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1788: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , args = () kwargs = {} @functools.wraps(fun) def wrapper(self, *args, **kwargs): try: return fun(self, *args, **kwargs) except PermissionError: raise AccessDenied(self.pid, self._name) except ProcessLookupError: raise NoSuchProcess(self.pid, self._name) except FileNotFoundError: if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): > raise NoSuchProcess(self.pid, self._name) E psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=177765) /usr/lib/python3/dist-packages/psutil/_pslinux.py:1583: NoSuchProcess During handling of the above exception, another exception occurred: tcp_port = 49281, proc_name = 's3' xprocess = @pytest.mark.skipif( sys.platform == "win32", reason="on windows SIGTERM is treated as an alias for kill()", ) @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_sigkill_after_failed_sigterm(tcp_port, proc_name, xprocess): # explicitly tell xprocess_starter fixture to make # server instance ignore SIGTERM class Starter(ProcessStarter): pattern = "started" args = [sys.executable, server_path, tcp_port, "--ignore-sigterm"] xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) # since terminate with sigterm will fail, set a lower # timeout before sending sigkill so tests won't take too long > assert ( info.terminate(timeout=2) == 1 or psutil.Process(info.pid).status() == psutil.STATUS_ZOMBIE ) tests/test_process_termination.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/psutil/__init__.py:326: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=177765, status='terminated'), pid = 177765 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if not _PY3 and not isinstance(pid, (int, long)): raise TypeError('pid must be an integer (got %r)' % pid) if pid < 0: raise ValueError('pid must be a positive integer (got %s)' % pid) self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL # cache creation time for later use in is_running() method try: self.create_time() except AccessDenied: # We should never get here as AFAIK we're able to get # process creation time on all platforms even as a # limited user. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = 'no process found with pid %s' % pid > raise NoSuchProcess(pid, None, msg) E psutil.NoSuchProcess: psutil.NoSuchProcess no process found with pid 177765 /usr/lib/python3/dist-packages/psutil/__init__.py:367: NoSuchProcess ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/.pytest_cache/d/.xprocess/s3$ /usr/bin/python3.9 /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1/tests/server.py 49281 --ignore-sigterm process 's3' started pid=177765 0 , % /.%,@%@._%%# #/%/ % 1 , % /.%,@%@._%%# #/%/ % 2 , % /.%,@%@._%%# #/%/ % 3 , % /.%,@%@._%%# #/%/ % 4 , % /.%,@%@._%%# #/%/ % Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū Ê�æ�pP��çîöē�P��adåráøū started s3 process startup detected could not terminated process [psutil.Process(pid=177767, name='python3.9', status='zombie', started='13:41:48'), psutil.Process(pid=177768, name='python3.9', status='zombie', started='13:41:48'), psutil.Process(pid=177766, name='python3.9', status='zombie', started='13:41:48')] =========================== short test summary info ============================ FAILED tests/test_functional_workflow.py::test_functional_work_flow - Failed:... FAILED tests/test_interruption_clean_up.py::test_interruption_does_not_cleanup FAILED tests/test_process_termination.py::test_clean_shutdown[s1] - assert -1... FAILED tests/test_process_termination.py::test_clean_shutdown[s2] - assert -1... FAILED tests/test_process_termination.py::test_clean_shutdown[s3] - assert -1... FAILED tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s1] FAILED tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s2] FAILED tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s3] =================== 8 failed, 37 passed in 430.20s (0:07:10) =================== pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. make[1]: *** [debian/rules:21: override_dh_auto_install] Error 1 make[1]: Leaving directory '/build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1' make: *** [debian/rules:9: binary-indep] Error 2 dpkg-buildpackage: error: fakeroot debian/rules binary-indep subprocess returned exit status 2 E: run_chroot failed: E: command failed: chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-pytest-xprocess-PGYEmC/python-pytest-xprocess-0.18.1 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1632734772" dpkg-buildpackage -uc -a amd64 --build=all" W: listening on child socket failed: I: removing tempdir /tmp/mmdebstrap.FxMGmvIDk3... mmdebstrap failed