Bug#1031435: python-inotify: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13
Control: severity -1 important Hi all, On Fri, 17 Feb 2023 21:51:24 +0100 Lucas Nussbaum wrote: > Sure. I took a look, and it seems that the different behaviour is caused > by me running an old stable kernel, rather than the latest one. > > With: > Linux 5.10.0-9-cloud-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) amd64 (x86_64) > it fails consistently. > With: > Linux 5.10.0-21-cloud-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) amd64 > (x86_64) > It works consistently. Running the below kernels here: $ uname -srv Linux 6.1.0-5-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.12-1 (2023-02-15) $ uname -srv Linux 6.1.0-3-686-pae #1 SMP PREEMPT_DYNAMIC Debian 6.1.8-1 (2023-01-29) $ uname -srv Linux 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) I have not reproduced the issue neither. I believe it is safe to at least relax the severity a bit, since the package is buildable on stable, testing and unstable kernels. Perhaps it could even be closed, but I understood this is not the first occurrence of such issue, so guess it could appear again in the future. Have a nice day, :) -- Étienne Mollier Fingerprint: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da Sent from /dev/pts/6, please excuse my verbosity. signature.asc Description: PGP signature
Bug#1031435: python-inotify: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13
Hi, On 17/02/23 at 20:17 +0100, Timo Röhling wrote: > Control: tags -1 + moreinfo > > Hi Lucas, > > this seems to be bug #1030493 again. > > On Fri, 17 Feb 2023 07:50:37 +0100 Lucas Nussbaum wrote: > > > E - '')] > > > E ? ^ > > > E > E + ''), > > > E ? ^ > > > E > E + (_INOTIFY_EVENT(wd=1, mask=1073742336, > > cookie=0, len=16), > > > E + ['IN_DELETE', 'IN_ISDIR'], > > > E + '/tmp/tmpmmbhfdhl', > > > E + 'new_folder')] > > Apparently, the returned order of INOTIFY_EVENTS is different with > your builds than it is on the buildds, my machine, and Bastian's > machine. Neither Bastian nor I could reproduce the bug. Initially, I > assumed this is some sort of flakiness and added test retries, but > it looks like your build system always returns events in a > different order (or at least often enough so two retries are not > sufficient). > > I suspect that you are using a different filesystem, which processes > changes differently and thus makes the inotify API return events in > a different order, but I don't know for sure. I'm using ext4, so this is unlikely. > Can you help us track down the underlying cause, so we can reproduce > the failure and then think of an appropriate way to work around it? Sure. I took a look, and it seems that the different behaviour is caused by me running an old stable kernel, rather than the latest one. With: Linux 5.10.0-9-cloud-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) amd64 (x86_64) it fails consistently. With: Linux 5.10.0-21-cloud-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) amd64 (x86_64) It works consistently. Just upgrading the kernel makes the problem disappear for me. So you should be able to reproduce the problem by downgrading the kernel (using snapshot.d.o). I had not updated the image (AWS AMI) I am using for the rebuilds for a long time. Sorry about that. Lucas
Bug#1031435: python-inotify: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13
Control: tags -1 + moreinfo Hi Lucas, this seems to be bug #1030493 again. On Fri, 17 Feb 2023 07:50:37 +0100 Lucas Nussbaum wrote: > E - '')] > E ? ^ > E > E + ''), > E ? ^ > E > E + (_INOTIFY_EVENT(wd=1, mask=1073742336, cookie=0, len=16), > E + ['IN_DELETE', 'IN_ISDIR'], > E + '/tmp/tmpmmbhfdhl', > E + 'new_folder')] Apparently, the returned order of INOTIFY_EVENTS is different with your builds than it is on the buildds, my machine, and Bastian's machine. Neither Bastian nor I could reproduce the bug. Initially, I assumed this is some sort of flakiness and added test retries, but it looks like your build system always returns events in a different order (or at least often enough so two retries are not sufficient). I suspect that you are using a different filesystem, which processes changes differently and thus makes the inotify API return events in a different order, but I don't know for sure. Can you help us track down the underlying cause, so we can reproduce the failure and then think of an appropriate way to work around it? Cheers Timo -- ⢀⣴⠾⠻⢶⣦⠀ ╭╮ ⣾⠁⢠⠒⠀⣿⡁ │ Timo Röhling │ ⢿⡄⠘⠷⠚⠋⠀ │ 9B03 EBB9 8300 DF97 C2B1 23BF CC8C 6BDD 1403 F4CA │ ⠈⠳⣄ ╰╯ signature.asc Description: PGP signature
Bug#1031435: python-inotify: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13
Source: python-inotify Version: 0.2.10-4 Severity: serious Justification: FTBFS Tags: bookworm sid ftbfs User: lu...@debian.org Usertags: ftbfs-20230216 ftbfs-bookworm Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > debian/rules binary > dh binary --with python3 --buildsystem=pybuild >dh_update_autotools_config -O--buildsystem=pybuild >dh_autoreconf -O--buildsystem=pybuild >dh_auto_configure -O--buildsystem=pybuild > I: pybuild base:240: python3.11 setup.py config > running config >dh_auto_build -O--buildsystem=pybuild > I: pybuild base:240: /usr/bin/python3 setup.py build > running build > running build_py > creating /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify > copying inotify/__init__.py -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify > copying inotify/test_support.py -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify > copying inotify/adapters.py -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify > copying inotify/constants.py -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify > copying inotify/library.py -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify > copying inotify/calls.py -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify > running egg_info > creating inotify.egg-info > writing inotify.egg-info/PKG-INFO > writing dependency_links to inotify.egg-info/dependency_links.txt > writing top-level names to inotify.egg-info/top_level.txt > writing manifest file 'inotify.egg-info/SOURCES.txt' > reading manifest file 'inotify.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > adding license file 'LICENSE' > writing manifest file 'inotify.egg-info/SOURCES.txt' > /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: > SetuptoolsDeprecationWarning: Installing 'inotify.resources' as data is > deprecated, please list it in `packages`. > !! > > > > # Package would be ignored # > > Python recognizes 'inotify.resources' as an importable package, > but it is not listed in the `packages` configuration of setuptools. > > 'inotify.resources' has been automatically added to the distribution only > because it may contain data files, but this behavior is likely to change > in future versions of setuptools (and therefore is considered deprecated). > > Please make sure that 'inotify.resources' is included as a package by > using > the `packages` configuration field or the proper discovery methods > (for example by using `find_namespace_packages(...)`/`find_namespace:` > instead of `find_packages(...)`/`find:`). > > You can read more about "package discovery" and "data files" on setuptools > documentation page. > > > !! > > check.warn(importable) > creating > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify/resources > copying inotify/resources/README.rst -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify/resources > copying inotify/resources/requirements.txt -> > /<>/.pybuild/cpython3_3.11_python-inotify/build/inotify/resources >dh_auto_test -O--buildsystem=pybuild > I: pybuild base:240: cd > /<>/.pybuild/cpython3_3.11_python-inotify/build; python3.11 -m > pytest -k 'not test__cycle' --reruns 3 --reruns-delay 1 > = test session starts > == > platform linux -- Python 3.11.2, pytest-7.2.1, pluggy-1.0.0+repack > rootdir: /<> > plugins: rerunfailures-10.2 > collected 9 items / 3 deselected / 6 selected > > tests/test_inotify.py .s...R > [100%]R [100%]R [100%]F [100%] > > === FAILURES > === > TestInotifyTree.test__renames > _ > > self = > > def test__renames(self): > > # Since we're not reading the events one at a time in a loop and > # removing or renaming folders will flush any queued events, we have > to > # group things in order to check things first before such operations. > > with inotify.test_support.temp_path() as path: > i = inotify.adapters.InotifyTree(path) > > old_path = os.path.join(path, 'old_folder') > new_path = os.path.join(path, 'new_folder') > > os.mkdir(old_path) > > events1 = self.__read_all_events(i) > > expected = [ > (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073742080, > cookie=events1[0][0].cookie, len=16), ['IN_CREATE', 'IN_ISDIR'], path, > 'old_folder'), > ] > > self.assertEquals(events1, expected) > > > os.rename(old_path, new_path) > > events2 = self.__read_all_events(i) > > expected =