achimnol/aiotools

test_fork_signal_fallback fails on armv7l

Closed this issue · 5 comments

=================================== FAILURES ===================================
__________________________ test_fork_signal_fallback ___________________________

    @pytest.mark.asyncio
    async def test_fork_signal_fallback():
        with mock.patch.object(
            fork_mod, '_has_pidfd', False,
        ):
>           await _do_test_fork_signal()

tests/test_fork.py:147: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    async def _do_test_fork_signal():
    
        def child():
            try:
                time.sleep(10)
            except KeyboardInterrupt:
                return 101
            return 100
    
        os.setpgrp()
        proc = await afork(child)
        assert proc._pid > 0
        if isinstance(proc, PidfdChildProcess):
            assert proc._pidfd > 0
        proc.send_signal(signal.SIGINT)
        ret = await proc.wait()
>       assert ret == 101
E       assert 254 == 101
E         +254
E         -101

Could you tell me more information on your setup (e.g., Python version, OS distribution name, kernel version (uname -a), VM or physical node type)?
I'm getting a new M1 MacBook today and will try out there.

I cannot reproduce this with the M1 Macbook, macOS Big Sur 11.1, and Python 3.9.1 (arm64 build).
As armv7l seems to be a very different architecture from arm64 (armv8), and I believe that this behavioral difference would come from the kernel implementation differences rather than the machine architecture-specific differences.
So please let me know the exact step-by-step procedures to reproduce, including the choice of OS and underlying hardware/VM platform.

The build environment is https://build.opensuse.org/package/show/home:jayvdb:py-submit/python-aiotools . It is Linux ARM, and only the armv7l builds are broken.

It is currently broken for other reasons due to a large openSUSE python restructure which is ongoing.

It's been almost one year since last update, so I close.

This test no longer fails. Thank you.