[SciPy-dev] Check reading the nested fields of a nested array

Nils Wagner nwagner at iam.uni-stuttgart.de
Tue Apr 25 03:21:59 CDT 2006


Travis Oliphant wrote:
> Nils Wagner wrote:
>   
>> Travis Oliphant wrote:
>>   
>>     
>>> Nils Wagner wrote:
>>>   
>>>     
>>>       
>>>> Nils Wagner wrote:
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> Travis Oliphant wrote:
>>>>>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>>>> Nils Wagner wrote:
>>>>>>   
>>>>>>     
>>>>>>       
>>>>>>         
>>>>>>           
>>>>>>             
>>>>>>> 0.9.7.2404 on a 64 bit system
>>>>>>>
>>>>>>> numpy.test(1,10) results in
>>>>>>>   
>>>>>>> Check reading the nested fields of a nested array (1st level)*** glibc 
>>>>>>> detected *** malloc(): memory corruption (fast): 0x00000000007dee40 ***
>>>>>>>   
>>>>>>>     
>>>>>>>       
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>>>>> Can you check to see which check-in caused the problem.  Go back to 
>>>>>> revision 2403, 2402, and so forth.
>>>>>>
>>>>>> Also, please remove the build directory and the installed numpy to be 
>>>>>> sure changes to the C-API are not causing problems.
>>>>>>
>>>>>> The trace-back is not really giving a clue.  Perhaps if you ran under 
>>>>>> valgrind better help could be given.  Are there any warnings emmitted 
>>>>>> during compilation?
>>>>>>
>>>>>>
>>>>>> Could somebody else with a 64-bit system verify?
>>>>>>
>>>>>>     
>>>>>>       
>>>>>>         
>>>>>>           
>>>>>>             
>>>> BTW, the problem is not restricted to 64-bit systems. I just installed 
>>>> the latest svn version of numpy
>>>> on a 32-bit system and got
>>>> Check reading the nested fields of a nested array (1st level)*** glibc 
>>>> detected *** free(): invalid next size (fast): 0x081d5870 ***
>>>> Abort
>>>>
>>>>   
>>>>     
>>>>       
>>>>         
>>> Please remove your installation of numpy and your build directory and 
>>> try again.  I do not get these errors.  
>>>
>>> The copyswap function changed arguments and appears to be at the root of 
>>> these problems.
>>>
>>> -Travis
>>>
>>> _______________________________________________
>>> Scipy-dev mailing list
>>> Scipy-dev at scipy.net
>>> http://www.scipy.net/mailman/listinfo/scipy-dev
>>>   
>>>     
>>>       
>> Hi Travis,
>>
>> I installed numpy from scratch but the problem persists. Any idea ?
>>
>>   
>>     
>
> Did you remove your numpy from <site-packages> and the build directory 
> before building?
>
>   
Yes.
> If so, please isolate the test that is failing into a short Python 
> snippet that exhibits the error.   I've just double-checked all uses of 
> copyswap to make sure they have all been changed.   All tests are 
> passing for me as well (also all SciPy tests pass).
>
> So, I can't reproduce the problem and it smells a lot like an 
> installation problem.  Are you picking up  include files from some other 
> location?  
>   
How can I check that ?
> Can somebody else verify to see if current SVN of numpy builds and 
> passes tests?
>
> -Travis
>
>
>
>
> _______________________________________________
> Scipy-dev mailing list
> Scipy-dev at scipy.net
> http://www.scipy.net/mailman/listinfo/scipy-dev
>   
I found the test in test_numerictypes.py

    def check_nested1_acessors(self):
        """Check reading the nested fields of a nested array (1st level)"""
        h = array(self._buffer, dtype=self._descr)
        if not self.multiple_rows:
            assert_equal(h['Info']['value'],
                         array(self._buffer[1][0], dtype='c16'))
            assert_equal(h['Info']['y2'],
                         array(self._buffer[1][1], dtype='f8'))
            assert_equal(h['info']['Name'],
                         array(self._buffer[3][0], dtype='U2'))
            assert_equal(h['info']['Value'],
                         array(self._buffer[3][1], dtype='c16'))
        else:
            assert_equal(h['Info']['value'],
                         array([self._buffer[0][1][0],
                                self._buffer[1][1][0]],
                                dtype='c16'))
            assert_equal(h['Info']['y2'],
                         array([self._buffer[0][1][1],
                                self._buffer[1][1][1]],
                                dtype='f8'))
            assert_equal(h['info']['Name'],
                         array([self._buffer[0][3][0],
                                self._buffer[1][3][0]],
                               dtype='U2'))
            assert_equal(h['info']['Value'],
                         array([self._buffer[0][3][1],
                                self._buffer[1][3][1]],
                               dtype='c16'))


Nils


 




More information about the Scipy-dev mailing list