[SciPy-Dev] memory corruption when running scipy 0.8 test suite

Christoph Gohlke cgohlke@uci....
Tue Jul 13 17:52:28 CDT 2010


Hi Ralph,

On 7/13/2010 5:26 AM, Ralf Gommers wrote:
> Hi Christoph,
>
> On Tue, Jul 13, 2010 at 9:11 AM, Christoph Gohlke <cgohlke@uci.edu
> <mailto:cgohlke@uci.edu>> wrote:
>
>     Dear SciPy developers,
>
>     I am trying to fix the errors and failures reported in the thread
>     "[SciPy-User] many test failures on windows 64"
>     <http://mail.scipy.org/pipermail/scipy-user/2010-July/025961.html>. Most
>     of the issues seem specific for the msvc9/MKL build of scipy 0.8. I am
>     now down to 1 error and 6 failures (from 16 errors and 9 failures).
>
>
> Thanks for working on this! Can you please share the fixes you have
> already (git branch or patches)? I have to make another release
> candidate which fixes the Rbf issue Scott Sinclair noticed and would
> like to incorporate these changes.


I have opened tickets and left comments on NumPy and SciPy trac:

http://projects.scipy.org/scipy/ticket/1229
"Patch for two test failures with msvc9 build"


http://projects.scipy.org/scipy/ticket/1225
"Test errors in scipy.sparse when using MSVC/MKL build"
The sparse.linalg.spsolve function works correctly when linking SuperLU 
against CBLAS instead of MKL. Nevertheless, one error and two failures 
remain for the scipy.sparse tests.


http://projects.scipy.org/numpy/ticket/1539
"MSVC specific TypeError when using double, longdouble in numpy.dot"
This is fixed in numpy trunk.


http://projects.scipy.org/scipy/ticket/678
"scipy.test failure with mkl/cdft"
The scipy.odr test failures also appear on linux platforms when scipy is 
linked with MKL.


http://projects.scipy.org/scipy/ticket/1210
"crash during sparse matrix slicing with Python 2.7"
This crash still persists with Python 2.7 final.


>
> For the ndimage issue I'm not sure what the answer is, but skipping the
> dsyevr tests on 64-bit Windows only should at least allow you to build
> binaries that pass all tests, right?

All ndimage tests would pass. One error and five failures would still 
remain for the whole scipy test suite.

I am not suggesting to disable the dsyevr test in the final release. 
Hiding the failure could create false confidence.



>     The following failure in ndimage does not appear when ndimage.test() is
>     run out of context of scipy.test()
>
>     FAIL: extrema 3
>     ----------------------------------------------------------------------
>     Traceback (most recent call last):
>        File
>     "C:\Python26\lib\site-packages\scipy\ndimage\tests\test_ndimage.py",
>     line 3149, in test_extrema03
>          self.failUnless(numpy.all(output1[2]  == output4))
>     AssertionError
>
>
>     The output1[2] array contains a NaN in the first position. If I disable
>     the following dsyevr related tests in
>     scipy.lib.lapack.tests.test_esv.py
>     <http://scipy.lib.lapack.tests.test_esv.py>, all ndimage tests pass.
>     Could this
>     be a memory corruption issue in MKL? Besides the ndimage failure,
>     scipy.lib.lapack seems to work and passes all tests. Also, this artifact
>     only happens or surfaces on the 64-bit build.
>
>
>     Index: test_esv.py
>     ===================================================================
>     --- test_esv.py (revision 6598)
>     +++ test_esv.py (working copy)
>     @@ -91,17 +91,17 @@
>           def test_ssyevr(self):
>               self._test_base('ssyevr', 'F')
>
>     -    @dec.skipif(FLAPACK_IS_EMPTY, "Flapack empty, skip flapack test")
>     -    def test_dsyevr(self):
>     -        self._test_base('dsyevr', 'F')
>     +#    @dec.skipif(FLAPACK_IS_EMPTY, "Flapack empty, skip flapack test")
>     +#    def test_dsyevr(self):
>     +#        self._test_base('dsyevr', 'F')
>
>           @dec.skipif(FLAPACK_IS_EMPTY, "Flapack empty, skip flapack test")
>           def test_ssyevr_ranges(self):
>               self._test_syevr_ranges('ssyevr', 'F')
>
>     -    @dec.skipif(FLAPACK_IS_EMPTY, "Flapack empty, skip flapack test")
>     -    def test_dsyevr_ranges(self):
>     -        self._test_syevr_ranges('dsyevr', 'F')
>     +#    @dec.skipif(FLAPACK_IS_EMPTY, "Flapack empty, skip flapack test")
>     +#    def test_dsyevr_ranges(self):
>     +#        self._test_syevr_ranges('dsyevr', 'F')
>
>           # Clapack tests
>           @dec.skipif(CLAPACK_IS_EMPTY or not FUNCS_CLAPACK["ssyev"],
>
>
>     I checked the flapack_esv.pyf.src code but could not find anything
>     obvious. I am linking against mkl_lapack95_lp64, mkl_blas95_lp64,
>     mkl_intel_lp64, mkl_intel_thread, and mkl_core, MKL version 10.2.5.1.
>



This is another weird test failure that is apparently dependent on the 
context in which the test is run:

======================================================================
FAIL: Real-valued Bessel domains
----------------------------------------------------------------------
Traceback (most recent call last):
   File 
"X:\Python26\lib\site-packages\scipy\special\tests\test_basic.py", line 
1691, in test_ticket_854
     assert not isnan(airye(-1)[2:4]).any(), airye(-1)
AssertionError: (nan, nan, nan, nan)


This failure is specific to the 32 bit build and only appears when I run 
'python -c"import scipy;scipy.test()"', but not in 'python -c"import 
scipy.special;scipy.special.test()"'. In contrast to the ndimage 
failure, this test fails for scipy.test() even if I remove all tests but 
the scipy special tests.


--
Christoph


More information about the SciPy-Dev mailing list