[Numpy-discussion] "Segmentation fault (core dumped)" as result of matrix multiplication

Marius Nijhuis mariusnijhuis at gmail.com
Tue May 6 08:15:29 EDT 2008


Hello,

I encountered the error "Segmentation fault (core dumped)" during a rather
standard multiplication, without excessive memory us.  This looks likes a
bug to me?
I am using Python 2.5, Numpy 1.0.4 under Ubuntu 7.10.

Here is what I am doing: i have two arrays, points1 and points2.

points1.shape=(n,k)
points2.shape=(m,k)

The problem only happens if n or m (or both) are 1. The arrays are then
still 2-dimensional. k is usually in the order of 60.

The code:

        p1Mat=asmatrix(points1)
        p2Mat=asmatrix(points2).T
        ab=p1Mat*p2Mat

At the third line, python crashes back to terminal with the text
"Segmentation fault (core dumped)"
Tracing further the error happens at line 106 of numpy/core/defmatrix.py
If I understand correctly, the   __mul__   method of p1Mat calls
N.dot(self, asmatrix(other))
and the problem occurs in    asmatrix(other)  , i.e. before actual
multiplication is done.

To be more precise, at some point the code calls __array_finalize__ twice,
nested, and the error happens on the second return from it.  I am not 100%
sure what is done here, but it looks as if the  asmatrix command I gave
myself is somehow conflicting with the asmatrix command given by __mul__

I have replaced my code with:

        p1Mat=sp.matrix(points1)
        p2Mat=sp.matrix(points2).T
        ab=p1Mat*p2Mat

and this works fine.

I hope this information is useful to someone?

Marius
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20080506/4ce7118d/attachment.html>


More information about the NumPy-Discussion mailing list