> Em 9 de novembro de 2011 00:29, Paulo César Pereira de Andrade
> 
> <paulo.cesar.pereira.de.andr...@gmail.com> escreveu:
> > 2011/11/8 Francois Bissey <francois.bis...@canterbury.ac.nz>:
> >>> 2011/11/8 Francois Bissey <francois.bis...@canterbury.ac.nz>:
> >>> 
> >>> [...]
> >>> 
> >>> > I don't get any of that. I suspect there may be an issue with
> >>> > gmp/mpir. But I have really no clue about the glibc problem, you are
> >>> > using mpmath-0.17 I expect.
> >>>
> >>>   Yes, mpmath-0.17.
> >>>
> >>>   This should be an issue with gmp / pylong / ntl conversions, in
> >>>
> >>> the sage/c_lib/src/*c or sage/c_lib/include/*.h
> >>>
> >>>   Should be an off by one wordsize miscalculation of some buffer.
> >>>
> >>>   I will try to debug some of it soon, but in the meantime, these may
> >>>ring
> >>>
> >>> some bell to somebody...
> >>> 
> >>> Invalid write of size 8
> >>> ==6304==    at 0x1FCB67F8: ??? (in /usr/lib64/libgmp.so.10.0.2)
> >>> ==6304==    by 0x1FCB7253: __gmpz_fac_ui (in
> >>> /usr/lib64/libgmp.so.10.0.2) ==6304==    by 0x2728775F: ??? (in
> >>> /usr/lib64/python2.7/site-packages/sage/rings/integer.so)
> >>> ==6304==  Address 0x29c39df8 is 0 bytes after a block of size 8 alloc'd
> >>> 
> >>> ==6304== Invalid read of size 8
> >>> ==6304==    at 0x1FA956B5: ??? (in /usr/lib64/libcsage.so)
> >>> ==6304==  Address 0x29c39df8 is 0 bytes after a block of size 8 alloc'd
> >>> 
> >>> ==6304== Invalid read of size 8
> >>> ==6304==    at 0x1FA95871: mpn_get_pylong (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA95D61: mpz_get_pylong (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA95DCB: mpz_get_pyintlong (in
> >>> /usr/lib64/libcsage.so) ==6304==  Address 0x29c39df8 is 0 bytes after
> >>> a block of size 8 alloc'd
> >>> 
> >>> ==6304== Invalid write of size 8
> >>> ==6304==    at 0x1FA95A74: mpn_set_pylong (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA95E7B: mpz_set_pylong (in /usr/lib64/libcsage.so)
> >>> ==6304==  Address 0x29c39df8 is 0 bytes after a block of size 8 alloc'd
> >>> 
> >>> ==6304== Invalid read of size 8
> >>> ==6304==    at 0x1FCC06AA: __gmpz_sizeinbase (in
> >>> /usr/lib64/libgmp.so.10.0.2) ==6304==  Address 0x29c39df8 is 0 bytes
> >>> after a block of size 8 alloc'd
> >>> 
> >>> ..
> >>>
> >>>   Also miscalculation and warning because of reading non initialized
> >>>data
> >>>
> >>> ==6304== Conditional jump or move depends on uninitialised value(s)
> >>> ==6304==    at 0x1FCB7EE3: __gmpz_fits_slong_p (in
> >>> /usr/lib64/libgmp.so.10.0.2) ==6304==    by 0x1FA95DA5:
> >>> mpz_get_pyintlong (in /usr/lib64/libcsage.so)
> >>> 
> >>> ==6304== Conditional jump or move depends on uninitialised value(s)
> >>> ==6304==    at 0x1FA95689: ??? (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA957E6: mpn_pylong_size (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA95CD8: mpz_get_pylong (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA95DCB: mpz_get_pyintlong (in
> >>> /usr/lib64/libcsage.so)
> >>> 
> >>> ==6304== Use of uninitialised value of size 8
> >>> ==6304==    at 0x1FA956B5: ??? (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA957E6: mpn_pylong_size (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA95CD8: mpz_get_pylong (in /usr/lib64/libcsage.so)
> >>> ==6304==    by 0x1FA95DCB: mpz_get_pyintlong (in
> >>> /usr/lib64/libcsage.so)
> >>>
> >>>   And a lot of other warnings following this pattern.
> >>>
> >> Hi Paulo,
> >> 
> >> with gmp5 I had to do the following for sage to even compile in
> >> sage/rings/integer.so precisely:
> >> sed -i "s:__GMP_BITS_PER_MP_LIMB:GMP_LIMB_BITS:g" sage/rings/integer.pyx
> >> 
> >> Since that's a deprecation problem that will reach mpir eventually, we
> >> should
> >> open a ticket on trac even it is not your present problem.
> >> 
> >> While I don't have a crash or any warnings I am wondering if it is
> >> related to http://trac.sagemath.org/sage_trac/ticket/11986
> >> Since it seems that some stuff in pylong is not working as expected.
> >> Is it working on x86 but not on x86_64?
> > 
> >  For the record, do you not notice the warnings if running sage as
> > $ MALLOC_CHECK_=1 sage
> > 
> > ? If I do not set MALLOC_CHECK_=1 I do not see any warnings,
> > and if setting to 2, useful in sage -gdb, I get it to call abort, what
> > is useful with "sage -gdb".
> 
>   I found a way to run it with exporting MALLOC_CHECK_=1 and
> not having any warnings printed. It appears to be an issue when
> python-gmpy is installed.
> 
>   If running something like:
> $ sudo rpm -e python-gmpy
> 
>   And then:
> 
> $ sage -t  -force_lib "devel/sage/sage/rings/integer.pyx"
> 
>   I see just:
> 
> sage -t -force_lib "devel/sage/sage/rings/integer.pyx"
> **********************************************************************
> File "/usr/share/sage/devel/sage/sage/rings/integer.pyx", line 4653:
>     sage: numpy.array(2**40).dtype
> Expected:
>     dtype('int64')
> Got:
>     dtype('object')
> **********************************************************************
> File "/usr/share/sage/devel/sage/sage/rings/integer.pyx", line 3046:
>     sage: n = -920390823904823094890238490238484; n.__hash__()
> Expected:
>     6874330978542788722
> Got:
>     -2623069716
> **********************************************************************
> File "/usr/share/sage/devel/sage/sage/rings/integer.pyx", line 3061:
>     sage: hash(n)
> Expected:
>     -9223372036854767616
> Got:
>     8192
> **********************************************************************
> File "/usr/share/sage/devel/sage/sage/rings/integer.pyx", line 3064:
>     sage: hash(n) == hash(int(n))
> Expected:
>     True
> Got:
>     False
> **********************************************************************
> 2 items had failures:
>    1 of   9 in __main__.example_113
>    3 of  13 in __main__.example_63
> ***Test Failed*** 4 failures.
> For whitespace errors, see the file /home/pcpa/.sage//tmp/integer_17043.py
>          [6.5 s]
> 
> ----------------------------------------------------------------------
> The following tests failed:
> 
> 
>         sage -t -force_lib "devel/sage/sage/rings/integer.pyx"
> Total time for all tests: 6.5 seconds
> 
> instead of 170k+ lines of glibc warning messages (but same doc test
> output). The warnings happens because I export MALLOC_CHECK_=1
> in the /usr/bin/sage script. What was left from other debug sessions, but
> I thought would be better to run sage with some internal malloc checks,
> and left so...
> 
Hi Paulo,

So I guess gmpy and sage were in competition! You could try to set 
MPMATH_NOGMPY before running sage. That may work and you could 
add it to sage-env for Mandriva.

Francois

This email may be confidential and subject to legal privilege, it may
not reflect the views of the University of Canterbury, and it is not
guaranteed to be virus free. If you are not an intended recipient,
please notify the sender immediately and erase all copies of the message
and any attachments.

Please refer to http://www.canterbury.ac.nz/emaildisclaimer for more
information.

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to