achimnol / aiotools

Idiomatic asyncio utilties
https://aiotools.readthedocs.io
MIT License
153 stars 11 forks source link

test_fork_signal_fallback fails on armv7l #24

Closed jayvdb closed 2 years ago

jayvdb commented 3 years ago
=================================== 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
achimnol commented 3 years ago

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.

achimnol commented 3 years ago

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.

jayvdb commented 3 years ago

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.

achimnol commented 2 years ago

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

jayvdb commented 2 years ago

This test no longer fails. Thank you.