[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:

"Patch for two test failures with msvc9 build"

"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.

"MSVC specific TypeError when using double, longdouble in numpy.dot"
This is fixed in numpy trunk.

"scipy.test failure with mkl/cdft"
The scipy.odr test failures also appear on linux platforms when scipy is 
linked with MKL.

"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

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):
"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.


More information about the SciPy-Dev mailing list