Bug#1031435: python-inotify: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13

2023-02-26 Thread Étienne Mollier
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

2023-02-17 Thread Lucas Nussbaum
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

2023-02-17 Thread Timo Röhling

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

2023-02-16 Thread Lucas Nussbaum
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 =