Bug#1085891: pygobject: 3.50.0 regression: FTBFS on big-endian: TestAsync failures

Simon McVittie smcv at debian.org
Wed Oct 23 11:24:31 BST 2024


Source: pygobject
Version: 3.50.0-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
User: debian-s390 at lists.debian.org
Usertags: s390x
X-Debbugs-Cc: debian-s390 at lists.debian.org, debian-powerpc at lists.debian.org, debian-sparc at lists.debian.org, debian-hppa at lists.debian.org

The new version of pygobject in experimental failed some tests on s390x
and other big-endian architectures (both 32- and 64-bit seem to be affected
and the correlation with endianness seems strong).

s390x:
https://buildd.debian.org/status/fetch.php?pkg=pygobject&arch=s390x&ver=3.50.0-1&stamp=1726523016&raw=0
> =========================== short test summary info ============================
> FAILED tests/test_async.py::TestAsync::test_async_cancel_completed - RuntimeE...
> FAILED tests/test_async.py::TestAsync::test_async_cancellation - RuntimeError...
> FAILED tests/test_async.py::TestAsync::test_async_completed_add_cb - RuntimeE...
> FAILED tests/test_async.py::TestAsync::test_async_enumerate - RuntimeError: y...
> FAILED tests/test_async.py::TestAsync::test_not_completed - RuntimeError: yie...
> ===== 5 failed, 1493 passed, 23 skipped, 10 xfailed, 66 warnings in 5.66s ======
> ==============================================================================

The detailed test results for the failing tests look like this:

>     async def run():
>         nonlocal self
>
>         res = f.enumerate_children_async("standard::*", 0, GLib.PRIORITY_DEFAULT)
> >       await res
> E       RuntimeError: yield was used instead of yield from in task <Task pending name='Task-1' coro=<TestAsync.test_async_cancel_completed.<locals>.run() running at /<<PKGBUILDDIR>>/tests/test_async.py:109> cb=[_run_until_complete_cb() at /usr/lib/python3.12/asyncio/base_events.py:182]> with gi._gi.Async(finish_func=Gio.File.enumerate_children_finish, done=False)

and the -ports architectures' test failures all look consistent with what
happened on s390x.

The endianness dependency makes me wonder whether there is a problem with
the handling of flags indicating whether to use 'yield' or 'yield from', or
something like that.

Before 3.50.x can go to unstable, either this will need to be addressed,
or pygobject will need to be removed from s390x.

Thanks,
    smcv



More information about the pkg-gnome-maintainers mailing list