[Paraview] Crash when extracting surface in a big mesh
Michael Jackson
mike.jackson at bluequartz.net
Tue Oct 28 10:34:28 EDT 2008
Sure he needs more than 2^31. 32 bit signed value of -1721647736
(0x9961BD88) can be reinterpreted as 2573319560 in unsigned 32 bit
value. So Paul has overflowed the capacity of a signed 32 bit integer.
I had already submitted a few patches for vtkDataSetSurfaceFilter for
32/64 bit issues. There obviously seem to be more.
In the header file we have:
int FastGeomQuadArrayLength;
And if we look at the debug session that Paul sent:
(gdb) print this->FastGeomQuadArrayLength
$2 = -1721647736
We can see that he is over flowing the index. My guess (and I have no
way of testing this) would be to declare some of the "int"s in that
class to be vtkIdType instead.
At least these
int FastGeomQuadArrayLength;
int NumberOfFastGeomQuadArrays;
// These indexes allow us to find the next available face.
int NextArrayIndex;
int NextQuadIndex;
Paul, are you in a position where you can make the changes and
recompile paraview?
_________________________________________________________
Mike Jackson mike.jackson at bluequartz.net
www.bluequartz.net
On Oct 28, 2008, at 10:10 AM, Moreland, Kenneth wrote:
> Paul,
>
> Have you compiled with VTK_USE_64BIT_IDS set to on? I wouldn't
> think you
> would be needing an id > 2^31, but if you did that could cause
> problems.
>
> -Ken
>
>
> On 10/28/08 2:12 AM, "Paul Edwards" <paul.m.edwards at gmail.com> wrote:
>
>> This is running the latest CVS version, linux (Suse 9.3) and 64bit.
>> It is definitely not a problem with memory allocation - the machine
>> has 64GB of RAM and it was only using about 14GB for the mesh with
>> solution (even less for the example in the last email). I did have a
>> quick try changing the variable to unsigned int but there were other
>> problems. I understand people use ParaView for much bigger meshes
>> but it must just be because it is all in one block.
>>
>> Regards,
>> Paul
>>
>> 2008/10/27 Michael Jackson <mike.jackson at bluequartz.net>:
>>> Looks like you may be running into a 32/64 bit bug. Does the
>>> program crash
>>> because it can not allocate enough memory or something else. Your
>>> gdb
>>> session below seems to indicate that the length variable needs to
>>> be a 64
>>> bit value, or at least unsigned.
>>>
>>> What system/compiler is this on?
>>> _________________________________________________________
>>> Mike Jackson mike.jackson at bluequartz.net
>>> BlueQuartz Software www.bluequartz.net
>>> Principal Software Engineer Dayton, Ohio
>>>
>>>
>>>
>>> On Oct 27, 2008, at 12:28 PM, Paul Edwards wrote:
>>>
>>>> Has anyone else experienced this problem? Is it just because I
>>>> have
>>>> so many cells in one block? To reproduce: compile structured grid
>>>> generator that is attached, create grid with dimensions 1000 x
>>>> 1000 x
>>>> 80, use clean to grid to make unstructured, and then try viewing
>>>> the
>>>> surface.
>>>>
>>>> Note: this uses quite a bit of memory....
>>>>
>>>> Regards,
>>>> Paul
>>>>
>>>> 2008/10/17 Edwards, Paul <Paul.Edwards3 at rolls-royce.com>:
>>>>>
>>>>> I think this int needs to be unsigned (or more bits)S..
>>>>>
>>>>>
>>>>>
>>>>> (gdb) frame 3
>>>>>
>>>>> #3 0x00002aaab2c053ea in vtkDataSetSurfaceFilter::NewFastGeomQuad
>>>>> (this=0x14fe670, numPts=4)
>>>>>
>>>>> at
>>>>>
>>>>> /tmp/padramgui-1.1/tmp/src/paraview/VTK/Graphics/
>>>>> vtkDataSetSurfaceFilter.cx
>>>>> x:1730
>>>>>
>>>>> 1730 this->FastGeomQuadArrays[this->NextArrayIndex]
>>>>>
>>>>> (gdb) list
>>>>>
>>>>> 1720 }
>>>>>
>>>>> 1721 }
>>>>>
>>>>> 1722 delete [] this->FastGeomQuadArrays;
>>>>>
>>>>> 1723 this->FastGeomQuadArrays = newArrays;
>>>>>
>>>>> 1724 this->NumberOfFastGeomQuadArrays = num;
>>>>>
>>>>> 1725 }
>>>>>
>>>>> 1726
>>>>>
>>>>> 1727 // Next: allocate a new array if necessary.
>>>>>
>>>>> 1728 if (this->FastGeomQuadArrays[this->NextArrayIndex] ==
>>>>> NULL)
>>>>>
>>>>> 1729 {
>>>>>
>>>>> 1730 this->FastGeomQuadArrays[this->NextArrayIndex]
>>>>>
>>>>> 1731 = new unsigned char[this->FastGeomQuadArrayLength];
>>>>>
>>>>> 1732 }
>>>>>
>>>>> 1733
>>>>>
>>>>> 1734 vtkFastGeomQuad* q = reinterpret_cast<vtkFastGeomQuad*>
>>>>>
>>>>> 1735 (this->FastGeomQuadArrays[this->NextArrayIndex] +
>>>>> this->NextQuadIndex);
>>>>>
>>>>> 1736 q->numPts = numPts;
>>>>>
>>>>> 1737
>>>>>
>>>>> 1738 this->NextQuadIndex += polySize;
>>>>>
>>>>> 1739
>>>>>
>>>>> (gdb) print this->FastGeomQuadArrayLength
>>>>>
>>>>> $2 = -1721647736
>>>>>
>>>>> (gdb) whatis this->FastGeomQuadArrayLength
>>>>>
>>>>> type = int
>>>>>
>>>>> (gdb)
>>>>>
>>>>>
>>>>>
>>>>> More than just that variable needs to be updated though.
>>>>>
>>>>>
>>>>>
>>>>> I experienced this when viewing the surface of a mesh with 90M
>>>>> cells on a
>>>>> single machine. Cuts worked without any problems.
>>>>>
>>>>>
>>>>>
>>>>> Regards,
>>>>>
>>>>> Paul
>>>>>
>>>>> The data contained in, or attached to, this e-mail, may contain
>>>>> confidential
>>>>> information. If you have received it in error you should notify
>>>>> the
>>>>> sender
>>>>> immediately by reply e-mail, delete the message from your system
>>>>> and
>>>>> contact
>>>>> +44 (0) 1332 242424 (the Rolls-Royce IT Security Director) if
>>>>> you need
>>>>> assistance. Please do not copy it for any purpose, or disclose its
>>>>> contents
>>>>> to any other person.
>>>>>
>>>>> An e-mail response to this address may be subject to
>>>>> interception or
>>>>> monitoring for operational reasons or for lawful business
>>>>> practices.
>>>>>
>>>>> (c) 2008 Rolls-Royce plc
>>>>>
>>>>> Registered office: 65 Buckingham Gate, London SW1E 6AT Company
>>>>> number:
>>>>> 1003142. Registered in England.
>>>>>
>>>>> _______________________________________________
>>>>> ParaView mailing list
>>>>> ParaView at paraview.org
>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>
>>>>>
>>>>
>>>> <
>>>> vtkStructuredGridGenerator
>>>> .h><vtkStructuredGridGenerator.cxx><vtkStructured
>>>> GridGenerator.xml>_______________________________________________
>>>> ParaView mailing list
>>>> ParaView at paraview.org
>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>> _______________________________________________
>> ParaView mailing list
>> ParaView at paraview.org
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>>
>
>
> **** Kenneth Moreland
> *** Sandia National Laboratories
> ***********
> *** *** *** email: kmorel at sandia.gov
> ** *** ** phone: (505) 844-8919
> *** fax: (505) 845-0833
>
>
>
More information about the ParaView
mailing list