Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 607466 - dev-lang/python fails test on mipsel with SIGILL in test_cmath test_specific_values
Summary: dev-lang/python fails test on mipsel with SIGILL in test_cmath test_specific_...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: MIPS Linux
: Normal normal
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords: TESTFAILURE
Depends on:
Blocks:
 
Reported: 2017-01-28 10:43 UTC by Mart Raudsepp
Modified: 2022-01-29 06:33 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,207.56 KB, text/plain)
2017-01-28 10:53 UTC, Mart Raudsepp
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mart Raudsepp gentoo-dev 2017-01-28 10:43:19 UTC
test_cd skipped -- No module named cd
[ 53/399/2] test_cfgparser
[ 54/399/2] test_cgi
[ 55/399/2] test_charmapcodec
[ 56/399/2] test_cl
test_cl skipped -- No module named cl
[ 57/399/2] test_class
[ 58/399/2] test_cmath
Makefile:915: recipe for target 'test' failed
make: *** [test] Illegal instruction
 * ERROR: dev-lang/python-2.7.12::gentoo failed (test phase):
 *   emake failed
Comment 1 Mart Raudsepp gentoo-dev 2017-01-28 10:45:34 UTC
Portage 2.2.28 (python 2.7.11-final-0, default/linux/mips/13.0/mipsel/n32, gcc-5.4.0, glibc-2.23-r3, 3.12.22 mips64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.12.22-mips64-ICT_Loongson-2_V0.3_FPU_V0.1-with-gentoo-2.3
KiB Mem:     1031168 total,     17696 free
KiB Swap:    2859520 total,   2856464 free
sh bash 4.4_p11
ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1
app-shells/bash:          4.4_p11::gentoo
dev-lang/perl:            5.24.1_rc4::gentoo
dev-lang/python:          2.7.11-r2::gentoo
dev-util/pkgconfig:       0.29.1::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.20.5::gentoo
sys-apps/sandbox:         2.10-r2::gentoo
sys-devel/autoconf:       2.69-r2::gentoo
sys-devel/automake:       1.11.6::gentoo, 1.13.4::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo
sys-devel/gcc:            5.3.0::gentoo, 5.4.0-r2::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r2::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.5::gentoo (virtual/os-headers)
sys-libs/glibc:           2.23-r3::gentoo
Repositories:

gentoo
    location: /home/leio/gentoo/gentoo-x86
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

loongson
    location: /home/leio/gentoo/loongson
    masters: gentoo
    priority: 0

leio-yeeloong
    location: /home/leio/gentoo/local
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="mips ~mips"
ACCEPT_LICENSE="* -@EULA"
CBUILD="mips64el-unknown-linux-gnu"
CFLAGS="-O2 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop"
CHOST="mips64el-unknown-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop"
DISTDIR="/usr/portage/distfiles"
FCFLAGS=""
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X acl berkdb bzip2 cairo cli cracklib crypt cxx gdbm iconv ipv6 jpeg loongson2f mips modules n32 ncurses nls nptl pam pcre png readline seccomp session ssl tcpd tiff unicode xattr zlib" ABI_MIPS="n32" ALSA_CARDS="au1x00" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en et et_EE" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby21" USERLAND="GNU" VIDEO_CARDS="siliconmotion fbdev" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

dev-lang/python-2.7.11-r2::gentoo was built with the following:
USE="gdbm ipv6 ncurses readline ssl (threads) (wide-unicode) xml (-berkdb) -build -doc -examples -hardened -libressl -sqlite -tk -wininst"
CFLAGS="-O2 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop -fwrapv"
CXXFLAGS="-O2 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop -fwrapv"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -L."
Comment 2 Mart Raudsepp gentoo-dev 2017-01-28 10:53:45 UTC
Created attachment 461702 [details]
build.log
Comment 3 Mart Raudsepp gentoo-dev 2017-01-28 10:55:24 UTC
It seems python test suite doesn't spit out the individual steps in the testrun if it fails with SIGILL and I can't find any log files either.
So I copied that test_cmath.py out of the test suite and ran it with my system python (installed before fully up to date with package tree and without FEATURES=test, dev-lang/python-2.7.11-r2) to get:

# python test_cmath.py 
test_abs (__main__.CMathTests) ... ok
test_cmath_matches_math (__main__.CMathTests) ... ok
test_constants (__main__.CMathTests) ... ok
test_input_type (__main__.CMathTests) ... ok
test_isinf (__main__.CMathTests) ... ok
test_isnan (__main__.CMathTests) ... ok
test_phase (__main__.CMathTests) ... ok
test_polar (__main__.CMathTests) ... ok
test_polar_errno (__main__.CMathTests) ... ok
test_rect (__main__.CMathTests) ... ok
test_specific_values (__main__.CMathTests) ... Illegal instruction
Comment 4 Joshua Kinard gentoo-dev 2017-01-28 21:35:36 UTC
(In reply to Mart Raudsepp from comment #3)
> It seems python test suite doesn't spit out the individual steps in the
> testrun if it fails with SIGILL and I can't find any log files either.
> So I copied that test_cmath.py out of the test suite and ran it with my
> system python (installed before fully up to date with package tree and
> without FEATURES=test, dev-lang/python-2.7.11-r2) to get:
> 
> # python test_cmath.py 
> test_abs (__main__.CMathTests) ... ok
> test_cmath_matches_math (__main__.CMathTests) ... ok
> test_constants (__main__.CMathTests) ... ok
> test_input_type (__main__.CMathTests) ... ok
> test_isinf (__main__.CMathTests) ... ok
> test_isnan (__main__.CMathTests) ... ok
> test_phase (__main__.CMathTests) ... ok
> test_polar (__main__.CMathTests) ... ok
> test_polar_errno (__main__.CMathTests) ... ok
> test_rect (__main__.CMathTests) ... ok
> test_specific_values (__main__.CMathTests) ... Illegal instruction

Can't reproduce on my Octane:
# python2.7 /usr/lib32/python2.7/test/test_cmath.py
test_abs (__main__.CMathTests) ... ok
test_cmath_matches_math (__main__.CMathTests) ... ok
test_constants (__main__.CMathTests) ... ok
test_input_type (__main__.CMathTests) ... ok
test_isinf (__main__.CMathTests) ... ok
test_isnan (__main__.CMathTests) ... ok
test_phase (__main__.CMathTests) ... ok
test_polar (__main__.CMathTests) ... ok
test_polar_errno (__main__.CMathTests) ... ok
test_rect (__main__.CMathTests) ... ok
test_specific_values (__main__.CMathTests) ... ok
test_user_object (__main__.CMathTests) ... ok

# file /usr/bin/python2.7
/usr/bin/python2.7: ELF 32-bit MSB executable, MIPS, N32 MIPS-IV version 1 (SYSV), dynamically linked, interpreter /lib32/ld.so.1, for GNU/Linux 3.2.0, stripped

# emerge --info
Portage 2.3.3 (python 3.5.2-final-0, default/linux/mips/13.0/n32, gcc-6.2.0, glibc-2.24, 4.9.5-mipsgit-20161216 mips64)
=================================================================
System uname: Linux-4.9.5-mipsgit-20161216-mips64-R14000_V2.4_FPU_V0.0-with-gentoo-2.3
KiB Mem:     2080896 total,    544896 free
KiB Swap:    3145536 total,   3114304 free
Timestamp of repository gentoo: Wed, 11 Jan 2017 04:15:01 +0000
sh bash 4.4_p5-r1
ld GNU ld (Gentoo 2.27 p1.0) 2.27
app-shells/bash:          4.4_p5-r1::gentoo
dev-lang/perl:            5.24.1_rc4::gentoo
dev-lang/python:          2.7.12::gentoo, 3.4.5::gentoo, 3.5.2::gentoo
dev-util/pkgconfig:       0.29.1::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.23.1::gentoo
sys-apps/sandbox:         2.11-r2::gentoo
sys-devel/autoconf:       2.69-r2::gentoo
sys-devel/automake:       1.11.6-r2::gentoo, 1.12.6-r1::gentoo, 1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo, 2.26.1::gentoo, 2.27::gentoo
sys-devel/gcc:            6.2.0-r1::gentoo, 6.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r2::gentoo
sys-devel/make:           4.2.1::gentoo
sys-kernel/linux-headers: 4.9::gentoo (virtual/os-headers)
sys-libs/glibc:           2.24::gentoo

[snip]

dev-lang/python-2.7.12::gentoo was built with the following:
USE="gdbm ipv6 ncurses readline ssl (threads) (wide-unicode) xml (-berkdb) -build -doc -examples -hardened -libressl -sqlite -tk -wininst"
CFLAGS="-O2 -pipe -march=r12k -mtune=r12k -mno-fix-r10000 -mabi=n32 -mplt -fomit-frame-pointer -fwrapv"
CXXFLAGS="-O2 -pipe -march=r12k -mtune=r12k -mno-fix-r10000 -mabi=n32 -mplt -fomit-frame-pointer -fwrapv"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -L."

Is 2.7.13 in the tree yet?  Might try running the tests on that and see if they already fixed whatever the bug is.
Comment 5 Mart Raudsepp gentoo-dev 2017-02-02 22:52:58 UTC
Tests also fails the same with python-3.5.2.

# file /usr/bin/python3.5m
/usr/bin/python3.5m: ELF 32-bit LSB executable, MIPS, N32 MIPS-III version 1 (SYSV), dynamically linked, interpreter /lib32/ld.so.1, for GNU/Linux 2.6.32, stripped

# file /usr/bin/python2.7
/usr/bin/python2.7: ELF 32-bit LSB executable, MIPS, N32 MIPS-III version 1 (SYSV), dynamically linked, interpreter /lib32/ld.so.1, for GNU/Linux 2.6.32, stripped
Comment 6 Mart Raudsepp gentoo-dev 2017-04-14 07:12:41 UTC
Same on 3.6.1

1:15:02 [367/404/6] test_cmath crashed
Fatal Python error: Illegal instruction

Current thread 0x775becf0 (most recent call first):
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/test_cmath.py", line 392 in test_specific_values
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/case.py", line 601 in run
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/case.py", line 649 in __call__
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/suite.py", line 122 in run
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/suite.py", line 84 in __call__
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/suite.py", line 122 in run
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/suite.py", line 84 in __call__
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/suite.py", line 122 in run
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/unittest/suite.py", line 84 in __call__
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/support/__init__.py", line 1765 in run
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/support/__init__.py", line 1889 in _run_suite
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/support/__init__.py", line 1923 in run_unittest
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/runtest.py", line 219 in test_runner
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/runtest.py", line 220 in runtest_inner
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/runtest.py", line 149 in runtest
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/runtest_mp.py", line 34 in run_tests_slave
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/main.py", line 475 in _main
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/main.py", line 468 in main
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/main.py", line 532 in main
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/regrtest.py", line 46 in _main
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/regrtest.py", line 50 in <module>
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/runpy.py", line 85 in _run_code
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/runpy.py", line 193 in _run_module_as_main
Traceback (most recent call last):
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/__main__.py", line 2, in <module>
    main()   
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/main.py", line 532, in main
    Regrtest().main(tests=tests, **kwargs)
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/main.py", line 468, in main
    self._main(tests, kwargs)
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/main.py", line 490, in _main
    self.run_tests()
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/main.py", line 416, in run_tests
    run_tests_multiprocess(self)
  File "/var/tmp/portage/dev-lang/python-3.6.1/work/Python-3.6.1/Lib/test/libregrtest/runtest_mp.py", line 184, in run_tests_multiprocess
    raise Exception(msg)
Exception: Child error on test_cmath: Exit code -4
make: *** [Makefile:1018: test] Error 1
Comment 7 Joshua Kinard gentoo-dev 2017-04-14 07:35:13 UTC
This might be down to an issue in the endianess or possibly even platform-specific.  Big-endian, MIPS-IV ISA, SGI seems unaffected on 2.7 and 3.5.  I haven't moved up to 3.6.x yet.

Can you locate a specific binary that reproduces this?  Or is it a combination of the Python interpreter and the specific test python module?  Can you rebuild Python with debugging enabled (-ggdb3 in C[XX]FLAGS and splitdebug in FEATURES), and build gdb and run the failing Python module inside of gdb and maybe get a backtrace?

SIGILL means your CPU can't handle a specific instruction, so if that instruction can be pinned down, we can maybe figure out why Python is trying to use it.  Could even be a compiler quirk?

Also attach the output of /proc/cpuinfo.  I thought Loongson's could handle up to mips64r2el, so I'm a bit surprised you're running MIPS-III ISA.
Comment 8 Mart Raudsepp gentoo-dev 2017-04-14 08:58:03 UTC
system type		: lemote-yeeloong-2f-8.9inches
machine			: Unknown
processor		: 0
cpu model		: ICT Loongson-2 V0.3  FPU V0.1
BogoMIPS		: 528.38
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 64
extra interrupt vector	: no
hardware watchpoint	: yes, count: 0, address/irw mask: []
ASEs implemented	:
shadow register sets	: 1
kscratch registers	: 0
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available
Comment 9 Matt Turner gentoo-dev 2018-03-29 00:02:30 UTC
Yep. I can reproduce this on my Yeeloong, but not on my Loongson3A.
Comment 10 Joshua Kinard gentoo-dev 2021-07-31 23:43:04 UTC
Digging through old MIPS bugs, is this still reproducible?  It didn't seem to ever affect big-endian SGI systems, but as I do not have Loongsons or Yeelongs, I cannot test those cases.
Comment 11 Joshua Kinard gentoo-dev 2022-01-29 06:33:28 UTC
Python-2.7 is no longer supported in Gentoo.  Marking OBSOLETE.