[Debian-science-sagemath] Sponsors needed for last uploads before stable freeze

Ximin Luo infinity0 at debian.org
Mon Jan 23 02:05:00 UTC 2017


Ximin Luo:
> [..]
> 
> sage -t --long src/sage/functions/wigner.py
>     Timed out (and interrupt failed)
> **********************************************************************
> Tests run before process (pid=1248) timed out:
> sage: from sage.functions.wigner import _calc_factlist ## line 59 ##
> sage: _calc_factlist(10) ## line 60 ##
> [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
> sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 62 ##
> 0
> sage: wigner_3j(2, 6, 4, 0, 0, 0) ## line 87 ##
> sqrt(5/143)
> sage: wigner_3j(2, 6, 4, 0, 0, 1) ## line 89 ##
> 0
> sage: wigner_3j(0.5, 0.5, 1, 0.5, -0.5, 0) ## line 91 ##
> sqrt(1/6)
> sage: wigner_3j(40, 100, 60, -10, 60, -50) ## line 93 ##
> 95608/18702538494885*sqrt(21082735836735314343364163310/220491455010479533763)
> sage: wigner_3j(2500, 2500, 5000, 2488, 2400, -4888, prec=64) ## line 95 ##
> 7.60424456883448589e-12
> sage: wigner_3j(2.1, 6, 4, 0, 0, 0) ## line 101 ##
> sage: wigner_3j(2, 6, 4, 1, 0, -1.1) ## line 105 ##
> sage: sig_on_count() # check sig_on/off pairings (virtual doctest) ## line 162 ##
> 0
> sage: simplify(clebsch_gordan(3/2,1/2,2, 3/2,1/2,2)) ## line 241 ##
> [... hangs here ...]
> 
> However if I log into the schroot (that is doing the build) and execute the test manually, it passes quickly:
> 
> [..]
> sage -t --long src/sage/functions/wigner.py
>     [49 tests, 5.43 s]
> ----------------------------------------------------------------------
> All tests passed!
> [..]
> 

It's busy-looping inside libgc when trying to do init_ecl(), see "Details" at
the bottom of this email. I am not sure the best way to fix this, especially
since I can't reproduce it when running the tests manually. Very likely there
is some sort of race condition relating to running the tests in parallel, but I
don't have the time to track it down in detail. :/

It's also possible that it will go away if we upgrade to ECL 16, but I don't
think we have the time for that.

One option is to just ignore it and instead let 7.4-6 go into stable. I think
that's possible still. However, it's very probable the bug will crop up there
too when someone rebuilds it... I've started a rebuild of this just to check,
though.

New packages
============

That is, in Debian unstable since 7.4-6 was built
https://buildd.debian.org/status/logs.php?pkg=sagemath

By running `debian/show-deps.sh by-date` inside the chroot:

Mon Jan  9 11:52:45 UTC 2017 python-olefile
Mon Jan  9 17:50:17 UTC 2017 libgnutls-dane0
Mon Jan  9 17:50:17 UTC 2017 libgnutls-openssl27
Mon Jan  9 17:50:17 UTC 2017 libgnutls28-dev
Mon Jan  9 17:50:17 UTC 2017 libgnutls30
Mon Jan  9 17:50:17 UTC 2017 libgnutlsxx28
Mon Jan  9 18:50:31 UTC 2017 libpng-dev
Mon Jan  9 18:50:31 UTC 2017 libpng16-16
Tue Jan 10 15:38:23 UTC 2017 libgl1-mesa-glx
Tue Jan 10 15:38:23 UTC 2017 libglapi-mesa
Tue Jan 10 15:38:23 UTC 2017 libosmesa6
Tue Jan 10 17:53:03 UTC 2017 libjs-jquery-typeahead
Tue Jan 10 19:28:57 UTC 2017 python-jinja2
Tue Jan 10 19:35:07 UTC 2017 libjs-text-encoding
Tue Jan 10 22:44:36 UTC 2017 python-pil
Wed Jan 11 09:31:13 UTC 2017 libjs-moment
Wed Jan 11 13:45:03 UTC 2017 libkpathsea6
Wed Jan 11 13:45:03 UTC 2017 libptexenc1
Wed Jan 11 13:45:03 UTC 2017 libsynctex1
Wed Jan 11 13:45:03 UTC 2017 libtexlua52
Wed Jan 11 13:45:03 UTC 2017 libtexluajit2
Wed Jan 11 13:45:03 UTC 2017 texlive-binaries
Wed Jan 11 19:21:48 UTC 2017 libjs-jquery-colorpicker
Wed Jan 11 20:33:49 UTC 2017 libgraphite2-3
Wed Jan 11 20:48:53 UTC 2017 python-pip
Wed Jan 11 20:48:53 UTC 2017 python-pip-whl
Thu Jan 12 14:25:19 UTC 2017 python-sympy
Thu Jan 12 15:52:37 UTC 2017 linux-libc-dev
Thu Jan 12 22:02:44 UTC 2017 libcurl3
Thu Jan 12 22:02:44 UTC 2017 libcurl3-gnutls
Sat Jan 14 09:45:31 UTC 2017 liboctave3v5
Sat Jan 14 09:45:31 UTC 2017 octave
Sat Jan 14 09:45:31 UTC 2017 octave-common
Sat Jan 14 10:06:04 UTC 2017 libgcrypt11-dev
Sat Jan 14 10:06:04 UTC 2017 libgcrypt20
Sat Jan 14 10:06:04 UTC 2017 libgcrypt20-dev
Sat Jan 14 10:41:47 UTC 2017 python-pathlib2
Sat Jan 14 14:31:49 UTC 2017 libxml2
Sat Jan 14 15:46:54 UTC 2017 icedtea-netx-common
Sun Jan 15 16:49:05 UTC 2017 libtiff5
Sun Jan 15 16:49:05 UTC 2017 libtiff5-dev
Sun Jan 15 16:49:05 UTC 2017 libtiffxx5
Sun Jan 15 22:00:02 UTC 2017 base-files
Sun Jan 15 23:35:20 UTC 2017 libperl5.24
Sun Jan 15 23:35:20 UTC 2017 perl
Sun Jan 15 23:35:20 UTC 2017 perl-base
Sun Jan 15 23:35:20 UTC 2017 perl-modules-5.24
Mon Jan 16 08:20:46 UTC 2017 libidn2-0
Mon Jan 16 12:55:35 UTC 2017 iso-codes
Mon Jan 16 17:43:37 UTC 2017 libc-dev-bin
Mon Jan 16 17:43:37 UTC 2017 libc6
Mon Jan 16 17:43:37 UTC 2017 libc6-dbg
Mon Jan 16 17:43:37 UTC 2017 libc6-dev
Mon Jan 16 17:43:37 UTC 2017 multiarch-support
Mon Jan 16 17:56:54 UTC 2017 libp11-kit-dev
Mon Jan 16 17:56:54 UTC 2017 libp11-kit0
Mon Jan 16 23:24:28 UTC 2017 libfltk-gl1.3
Mon Jan 16 23:24:28 UTC 2017 libfltk1.3
Mon Jan 16 23:45:42 UTC 2017 libgdk-pixbuf2.0-0
Mon Jan 16 23:45:42 UTC 2017 libgdk-pixbuf2.0-common
Tue Jan 17 01:29:36 UTC 2017 fakeroot
Tue Jan 17 01:29:36 UTC 2017 libfakeroot
Tue Jan 17 02:45:34 UTC 2017 tex-common
Tue Jan 17 16:23:34 UTC 2017 libvpx-dev
Tue Jan 17 16:23:34 UTC 2017 libvpx4
Tue Jan 17 18:13:39 UTC 2017 libtasn1-6
Tue Jan 17 18:13:39 UTC 2017 libtasn1-6-dev
Tue Jan 17 23:56:22 UTC 2017 texlive-base
Tue Jan 17 23:56:22 UTC 2017 texlive-latex-base
Wed Jan 18 13:06:44 UTC 2017 libcups2
Wed Jan 18 13:17:07 UTC 2017 init-system-helpers
Wed Jan 18 13:33:24 UTC 2017 libqhull7
Wed Jan 18 16:11:46 UTC 2017 cpp
Wed Jan 18 16:11:46 UTC 2017 g++
Wed Jan 18 16:11:46 UTC 2017 gcc
Wed Jan 18 16:11:46 UTC 2017 gfortran
Wed Jan 18 16:27:10 UTC 2017 libgpg-error-dev
Wed Jan 18 16:27:10 UTC 2017 libgpg-error0
Wed Jan 18 19:05:43 UTC 2017 binutils
Wed Jan 18 19:40:41 UTC 2017 gnupg
Wed Jan 18 19:40:41 UTC 2017 gnupg-agent
Wed Jan 18 19:40:41 UTC 2017 gpgv
Wed Jan 18 20:06:46 UTC 2017 libgd-dev
Wed Jan 18 20:06:46 UTC 2017 libgd3
Thu Jan 19 09:46:21 UTC 2017 docutils-common
Thu Jan 19 09:46:21 UTC 2017 python-docutils
Thu Jan 19 10:28:25 UTC 2017 gdb-python2
Thu Jan 19 14:11:04 UTC 2017 libpython3.5-stdlib
Thu Jan 19 14:11:04 UTC 2017 python3.5
Thu Jan 19 14:48:08 UTC 2017 libpython2.7
Thu Jan 19 14:48:08 UTC 2017 libpython2.7-dev
Thu Jan 19 14:48:08 UTC 2017 libpython2.7-stdlib
Thu Jan 19 14:48:08 UTC 2017 python2.7
Thu Jan 19 14:48:08 UTC 2017 python2.7-dev
Thu Jan 19 14:48:08 UTC 2017 python2.7-minimal
Thu Jan 19 17:02:25 UTC 2017 python-pkg-resources
Thu Jan 19 17:02:25 UTC 2017 python-setuptools
Thu Jan 19 17:02:25 UTC 2017 python3-pkg-resources
Thu Jan 19 17:22:49 UTC 2017 passwd
Fri Jan 20 00:34:19 UTC 2017 python-numpy
Fri Jan 20 05:36:39 UTC 2017 libxcomposite1
Fri Jan 20 10:03:28 UTC 2017 libpython3-stdlib
Fri Jan 20 10:03:28 UTC 2017 python3
Fri Jan 20 10:03:28 UTC 2017 python3-minimal
Fri Jan 20 12:58:59 UTC 2017 debconf
Fri Jan 20 16:33:41 UTC 2017 libmount1
Fri Jan 20 16:33:41 UTC 2017 libuuid1
Fri Jan 20 21:18:15 UTC 2017 libssl1.1
Fri Jan 20 21:18:15 UTC 2017 openssl
Sat Jan 21 17:51:03 UTC 2017 cpp-6
Sat Jan 21 17:51:03 UTC 2017 g++-6
Sat Jan 21 17:51:03 UTC 2017 gcc-6
Sat Jan 21 17:51:03 UTC 2017 gcc-6-base
Sat Jan 21 17:51:03 UTC 2017 gfortran-6
Sat Jan 21 17:51:03 UTC 2017 libcc1-0
Sat Jan 21 17:51:03 UTC 2017 libgcc-6-dev
Sat Jan 21 17:51:03 UTC 2017 libgcc1
Sat Jan 21 17:51:03 UTC 2017 libgfortran3
Sat Jan 21 17:51:03 UTC 2017 libgomp1
Sat Jan 21 17:51:03 UTC 2017 libquadmath0
Sat Jan 21 17:51:03 UTC 2017 libstdc++-6-dev
Sat Jan 21 17:51:03 UTC 2017 libstdc++6
Sun Jan 22 00:17:42 UTC 2017 python-sagenb
Sun Jan 22 02:35:45 UTC 2017 python-matplotlib
Sun Jan 22 02:35:45 UTC 2017 python-matplotlib-data

Details
=======

After installing the debugging tools and symbols (in the schroot):

$ sudo apt-get install python-dbg cython-dbg ecl-dbgsym libgc1c2-dbgsym

then manually running the `debian/rules export-build-env` stuff, we use gdb to
figure out we're in the correct python process (because there are many of them
in parallel), then we use cygdb to print some more detailed information.

Using gdb with python
---------------------

https://wiki.python.org/moin/DebuggingWithGdb

(unstable-i386-sbuild)infinity0 at host:/build/sagemath-ZP1Le0/sagemath-7.4/sage$ gdb python 46075
[..]
Reading symbols from python...Reading symbols from /usr/lib/debug/.build-id/41/b28b05836a808ae7dd4e567c413177923cc4b2.debug...done.
done.
Attaching to program: /usr/bin/python, process 46075
[New LWP 46106]
[..]
[New LWP 46117]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
0xce401bc6 in ?? () from /usr/lib/i386-linux-gnu/libgc.so.1
(gdb) py-bt
Traceback (most recent call first):
  File "/build/sagemath-ZP1Le0/sagemath-7.4/debian/build/usr/lib/python2.7/dist-packages/sage/interfaces/maxima_lib.py", line 92, in <module>
    from sage.libs.ecl import EclObject, ecl_eval
  File "/build/sagemath-ZP1Le0/sagemath-7.4/debian/build/usr/lib/python2.7/dist-packages/sage/calculus/functional.py", line 52, in simplify
    return f.simplify()
  File "<doctest sage.functions.wigner.clebsch_gordan[0]>", line 1, in <module>
  File "/build/sagemath-ZP1Le0/sagemath-7.4/debian/build/usr/lib/python2.7/dist-packages/sage/doctest/forker.py", line 861, in compile_and_execute
    exec(compiled, globs)
  [.. uninteresting ..]
  File "/build/sagemath-ZP1Le0/sagemath-7.4/sage/src/bin/sage-runtests", line 89, in <module>
    err = DC.run()
(gdb) py-list
  87    from __future__ import print_function
  88    from __future__ import absolute_import
  89    
  90    from sage.symbolic.ring import SR
  91    
 >92    from sage.libs.ecl import EclObject, ecl_eval
  93    
  94    from .maxima_abstract import (MaximaAbstract, MaximaAbstractFunction,
  95      MaximaAbstractElement, MaximaAbstractFunctionElement,
  96      MaximaAbstractElementFunction)
  97    
(gdb) quit
A debugging session is active.

	Inferior 1 [process 46075] will be detached.

Quit anyway? (y or n) y
Detaching from program: /usr/bin/python, process 46075

Using cygdb
-----------

https://cython.readthedocs.io/en/latest/src/userguide/debugging.html

(unstable-i386-sbuild)infinity0 at host:/build/sagemath-ZP1Le0/sagemath-7.4/sage$ cygdb src/build/ -- -d src/sage -d .. python 46075
[..]
Reading symbols from python...Reading symbols from /usr/lib/debug/.build-id/41/b28b05836a808ae7dd4e567c413177923cc4b2.debug...done.
done.
Attaching to program: /usr/bin/python, process 46075
[New LWP 46106]
[..]
[New LWP 46117]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
0xce401bc6 in get_index (addr=addr at entry=2232868864) at headers.c:207
207	headers.c: No such file or directory.
warning: .cygdbinit: No such file or directory
(gdb) bt
#0  0xce401bc6 in get_index (addr=addr at entry=2232868864) at headers.c:207
#1  0xce401e19 in GC_install_counts (h=0xff96e000, sz=4456448) at headers.c:279
#2  0xce3faf45 in GC_allochblk_nth (sz=4456448, kind=1, flags=1, n=60, may_split=1) at allchblk.c:791
#3  0xce3fb361 in GC_allochblk (sz=4456448, kind=1, flags=1) at allchblk.c:624
#4  0xce4022f1 in GC_alloc_large (lb=4456448, k=1, flags=1) at malloc.c:64
#5  0xce40304b in GC_generic_malloc_ignore_off_page (lb=4456448, k=1) at mallocx.c:192
#6  0xce4031ba in GC_malloc_ignore_off_page (lb=4456448) at mallocx.c:223
#7  0xce5a8678 in ecl_alloc_unprotected (n=4456448) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/alloc_2.d:717
#8  0xce5a8769 in ecl_alloc (n=4456448) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/alloc_2.d:732
#9  0xce58d251 in alloc_pointerfull_memory (l=1114112) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/array.d:530
#10 0xce58d2ed in ecl_array_allocself (x=0xff920de0) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/array.d:545
#11 0xce58dc95 in si_make_vector (etype=0xce6ef61c <cl_symbols+28>, dim=0x440003, adj=0x1, fillp=0x1, displ=0x1, disploff=0x3) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/array.d:521
#12 0xce4e32d3 in _eclWWewOka7_1m3gSs21 (flag=0x0) at lsp/format.c:17846
#13 0xce566eec in ecl_init_module (block=<optimized out>, entry_point=0xce4e3140 <_eclWWewOka7_1m3gSs21>) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/read.d:2444
#14 0xce48b62f in init_lib_LSP (cblock=0x0) at eclinitFTPx4A.c:193
#15 0xce566eec in ecl_init_module (block=<optimized out>, entry_point=0xce48b430 <init_lib_LSP>) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/read.d:2444
#16 0xce48a57e in cl_boot (argc=<optimized out>, argv=<optimized out>) at /build/ecl-IrXgwb/ecl-15.3.7+dfsg1/src/c/main.d:779
#17 0xce7204f4 in __pyx_pf_4sage_4libs_3ecl_4init_ecl (__pyx_self=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:5438
#18 0xce71fe51 in __Pyx_PyObject_Call (kw=<optimized out>, arg=<optimized out>, func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13253
#19 __Pyx_PyObject_CallNoArg (func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13532
#20 0xce72effb in initecl () at ./sage/src/build/cythonized/sage/libs/ecl.c:13034
#21 0xf74f3c22 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) up 17
#17 0xce7204f4 in __pyx_pf_4sage_4libs_3ecl_4init_ecl (__pyx_self=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:5438
5438	  cl_boot(1, __pyx_v_argv);
(gdb) cy list
  5433     *     ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0)
  5434     *     cl_boot(1, argv)             # <<<<<<<<<<<<<<
  5435     * 
  5436     *     #save signal handler from ECL
  5437     */
> 5438      cl_boot(1, __pyx_v_argv);
  5439    
  5440      /* "sage/libs/ecl.pyx":264
  5441     * 
  5442     *     #save signal handler from ECL
(gdb) up
#18 0xce71fe51 in __Pyx_PyObject_Call (kw=<optimized out>, arg=<optimized out>, func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13253
13253	    result = (*call)(func, arg, kw);
(gdb) up
#19 __Pyx_PyObject_CallNoArg (func=<optimized out>) at ./sage/src/build/cythonized/sage/libs/ecl.c:13532
13532	    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
(gdb) up
#20 0xce72effb in initecl () at ./sage/src/build/cythonized/sage/libs/ecl.c:13034
13034	    __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1334, __pyx_L1_error)
(gdb) cy bt
#1  0x00000000ce72d7e0 in ecl() at /build/sagemath-ZP1Le0/sagemath-7.4/sage/src/sage/libs/ecl.pyx:1334
      1334    init_ecl()(gdb) cy list
  1329        cdef cl_object o
  1330        o=ecl_safe_read_string(s)
  1331        o=ecl_safe_eval(o)
  1332        return ecl_wrap(o)
  1333    
> 1334    init_ecl()
(gdb) quit
A debugging session is active.

	Inferior 1 [process 46075] will be detached.

Quit anyway? (y or n) y
Detaching from program: /usr/bin/python, process 46075
close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor

At this point I gave up because I didn't want to spend time debugging libgc or ecl.

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git



More information about the Debian-science-sagemath mailing list