python-gevent is broken on i686-linux (tests fail)

  • Done
  • quality assurance status badge
Details
2 participants
  • Jakub K?dzio?ka
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Jakub K?dzio?ka
Severity
normal
J
J
Jakub K?dzio?ka wrote on 26 Jul 2020 20:35
(address . bug-guix@gnu.org)
20200726183503.pu7ll2fzm4a6bf5h@gravity
The package python-gevent doesn't build on i686-linux, the following
test failure occurs:

======================================================================
FAIL: test_unlink (gevent.tests.test__core_stat.TestCoreStat)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/errorhandler.py", line 47, in wrapper
return method(self, *args, **kwargs)
File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/errorhandler.py", line 34, in wrapper
return method(self, *args, **kwargs)
File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/testcase.py", line 182, in wrapper
return method(self, *args, **kwargs)
File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/tests/test__core_stat.py", line 114, in test_unlink
self._check_attr('attr', True)
File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/tests/test__core_stat.py", line 66, in _check_attr
self.assertIsNone(x, name)
AssertionError: os.stat_result(st_mode=997, st_ino=0, st_dev=74395714104328192, st_nlink=30000, st_uid=0, st_gid=0, st_size=6851593278123409408, st_atime=1595260873, st_mtime=0, st_ctime=-2) is not None : attr
----------------------------------------------------------------------
Ran 48 tests in 1.238s

I have created a simple standalone script based on this test case:

import os, tempfile, gevent
fd, path = tempfile.mkstemp('.test')
os.close(fd)
hub = gevent.get_hub()
watcher = hub.loop.stat(path, interval=-1)
hub.loop.update_now()
gevent.spawn_later(0.5, os.unlink, path)
hub.wait(watcher)
print(watcher.attr)
print(watcher.prev)

After adding a (delete 'check) to python-gevent's arguments, we observe
the following:

% ./pre-inst-env guix environment --ad-hoc python python-gevent -- python3 ~/tmp/gevent-test.py
None
os.stat_result(st_mode=33152, st_ino=44162375, st_dev=2052, st_nlink=1, st_uid=1000, st_gid=1000, st_size=0, st_atime=1595787602, st_mtime=1595787602, st_ctime=1595787602)
% ./pre-inst-env guix environment --system=i686-linux --ad-hoc python python-gevent -- python3 ~/tmp/gevent-test.py
os.stat_result(st_mode=1000, st_ino=0, st_dev=189675956338688000, st_nlink=1000, st_uid=0, st_gid=0, st_size=6853855360088801280, st_atime=1595787555, st_mtime=0, st_ctime=-2)
os.stat_result(st_mode=33152, st_ino=2052, st_dev=2052, st_nlink=1, st_uid=1000, st_gid=1000, st_size=17592186044416, st_atime=1595787555, st_mtime=1595787555, st_ctime=0)

Namely, the i686 variant returns entirely bogus values.

I have tried reproducing this in a Guix-less environment in a Docker
container based on the i386/debian:bullseye image, but I haven't had any
luck.

Regards,
Jakub K?dzio?ka
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEE5Xa/ss9usT31cTO54xWnWEYTFWQFAl8dzNcACgkQ4xWnWEYT
FWSaOA/+L5OHTOVIY7czGnkZUfJcPsLZrAcEJt5Tclf5JdlNGpy2P9F1W/6tfJMm
w7sBJI6pm8sZVt/OrCBMsWvkklj37ETuUnwi+dijrF8sZB2eMYaTgGTsOSEqvYeL
ZCUeSuRcc4R+KddoVMzhxDhYYNjlgbIEhEVQsZaUs+KZfNIZCplP+RUeBpmBObi8
gZhbnaOHa9Q0qkQ7G/MhaAEkrZiciV9XoyZ7ZNURqVCjgtUEFh1ERY7V2bDCE2/l
i5WH5KTdhuDPyVq5khxMoax4lIDcqdlMr1H2zVjHLvD0+POBjgHSK0jc+tcLUb1I
GK0ND5JJjPIWur3ySxQ3xPlNpxZhZYuENYWp8EPdZn7Yed9z/cYu11uQaNCa1IcD
ys+5TIsXEO0ryreUStJTSShjDqAwVat1jsk8xhEhKIvfgtAowH5chOw5VfNfbDvg
UsHUShoxeIOT5XAPD1DjvtVuVKA9MITr9HKKHgHr8stlid8hpE3EtNJf1QUGYkd7
9ytPZNhcrm2yXXYN/lLbE2nf0dMcSdV7IFabWFFIP9rbKeYEiZ3DKy4snS1+afO+
jVLOoNWEpo5n8uG6S9ZF/BoVyZcC2LxQuKRIGP/KG+uDIfXRLW/NXnh9U8ax8DEu
cDL49V7ijyb2V9gi3F5lxyFynbnrjJxTyyuqs+pvnwZ2K5IHrMg=
=cBKm
-----END PGP SIGNATURE-----


M
M
Maxim Cournoyer wrote on 29 Dec 2020 04:44
(name . Jakub K?dzio?ka)(address . kuba@kadziolka.net)(address . 42553@debbugs.gnu.org)
8735zpwa1u.fsf@gmail.com
Hello,

Jakub K?dzio?ka <kuba@kadziolka.net> writes:

Toggle quote (23 lines)
> The package python-gevent doesn't build on i686-linux, the following
> test failure occurs:
>
> ======================================================================
> FAIL: test_unlink (gevent.tests.test__core_stat.TestCoreStat)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/errorhandler.py", line 47, in wrapper
> return method(self, *args, **kwargs)
> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/errorhandler.py", line 34, in wrapper
> return method(self, *args, **kwargs)
> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/testcase.py", line 182, in wrapper
> return method(self, *args, **kwargs)
> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/tests/test__core_stat.py", line 114, in test_unlink
> self._check_attr('attr', True)
> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/tests/test__core_stat.py", line 66, in _check_attr
> self.assertIsNone(x, name)
> AssertionError: os.stat_result(st_mode=997, st_ino=0, st_dev=74395714104328192, st_nlink=30000, st_uid=0, st_gid=0, st_size=6851593278123409408, st_atime=1595260873, st_mtime=0, st_ctime=-2) is not None : attr
>
> ----------------------------------------------------------------------
> Ran 48 tests in 1.238s
>

Just a follow-up to mention that this still occurs when building with
--system=i686-linux, even with the recent python-gevent update to
20.9.0.

Maxim
M
M
Maxim Cournoyer wrote on 14 Jul 2022 04:40
(name . Jakub K?dzio?ka)(address . kuba@kadziolka.net)(address . 42553-done@debbugs.gnu.org)
87leswzaaz.fsf@gmail.com
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (31 lines)
> Hello,
>
> Jakub K?dzio?ka <kuba@kadziolka.net> writes:
>
>> The package python-gevent doesn't build on i686-linux, the following
>> test failure occurs:
>>
>> ======================================================================
>> FAIL: test_unlink (gevent.tests.test__core_stat.TestCoreStat)
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/errorhandler.py", line 47, in wrapper
>> return method(self, *args, **kwargs)
>> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/errorhandler.py", line 34, in wrapper
>> return method(self, *args, **kwargs)
>> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/testing/testcase.py", line 182, in wrapper
>> return method(self, *args, **kwargs)
>> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/tests/test__core_stat.py", line 114, in test_unlink
>> self._check_attr('attr', True)
>> File "/tmp/guix-build-python-gevent-20.6.2.drv-0/gevent-20.6.2/build/lib.linux-i686-3.8/gevent/tests/test__core_stat.py", line 66, in _check_attr
>> self.assertIsNone(x, name)
>> AssertionError: os.stat_result(st_mode=997, st_ino=0, st_dev=74395714104328192, st_nlink=30000, st_uid=0, st_gid=0, st_size=6851593278123409408, st_atime=1595260873, st_mtime=0, st_ctime=-2) is not None : attr
>>
>> ----------------------------------------------------------------------
>> Ran 48 tests in 1.238s
>>
>
> Just a follow-up to mention that this still occurs when building with
> --system=i686-linux, even with the recent python-gevent update to
> 20.9.0.

Finally disabled the test in 692c2ad327.

Closing.

Thanks for the report!

Maxim
Closed
J
J
Jakub K?dzio?ka wrote on 14 Jul 2022 09:21
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 42553-done@debbugs.gnu.org)
CLF750RHIXX8.1OQ3MBUWMV4IK@gravity
On Thu Jul 14, 2022 at 4:40 AM CEST, Maxim Cournoyer wrote:
Toggle quote (4 lines)
> Finally disabled the test in 692c2ad327.
>
> Closing.

Are we sure this is the appropriate course of action? It sounds like the
test is exposing a bug in our packaging that might affect users of
python-gevent. It might be better to have the package build than not, of
course, but still we might want to investigate why the test fails.

Regards,
Kuba
Closed
M
M
Maxim Cournoyer wrote on 14 Jul 2022 16:15
(name . Jakub K?dzio?ka)(address . kuba@kadziolka.net)(address . 42553-done@debbugs.gnu.org)
87pmi7wzki.fsf@gmail.com
Hi Jakub,

Jakub K?dzio?ka <kuba@kadziolka.net> writes:

Toggle quote (10 lines)
> On Thu Jul 14, 2022 at 4:40 AM CEST, Maxim Cournoyer wrote:
>> Finally disabled the test in 692c2ad327.
>>
>> Closing.
>
> Are we sure this is the appropriate course of action? It sounds like the
> test is exposing a bug in our packaging that might affect users of
> python-gevent. It might be better to have the package build than not, of
> course, but still we might want to investigate why the test fails.

The issue was reported and closed upstream many versions ago. I'm
positive python-gevent works fine in Guix. It's just the test_unlink
test that fails for unknown reasons on i686. I wouldn't loose sleep on
it.

Thanks,

Maxim
Closed
?