[vtk-developers] Intermittent segfault in vtkImage.DeepCopy
Yves Starreveld
ystarrev at uwo.ca
Thu Jul 26 01:45:52 EDT 2001
Hi,
The following simple example will always segfault on a multi-cpu machine.
> .....
> adder = vtkImageMathematics()
> adder.SetInput1(a)
> adder.SetInput2(b)
> adder.SetOperationToAdd()
> for x in xrange(10000):
> adder.Update()
> b.DeepCopy(adder.GetOutput())
.....
The code runs fine when a ShallowCopy is used instead.
Its hard to track down since gdb often runs out of allocatable threads
before the crash occurs.
Here is a backtrace, however:
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 559651 (LWP 30674)]
> __strtol_internal (nptr=0x4261eb88 "", endptr=0x12, base=32,
> group=1099504609) at eval.c:36
> 36 eval.c: No such file or directory.
> in eval.c
> (gdb) bt
> #0 __strtol_internal (nptr=0x4261eb88 "", endptr=0x12, base=32,
> group=1099504609) at eval.c:36
> #1 0x419735a7 in vtkAttributeData::GetVoidPointer (this=0x4261eb88,
> id=18)
> at vtkAttributeData.h:109
> #2 0x4189216b in vtkImageData::GetScalarPointer (this=0x812a0a8,
> coordinates=0x864ff918) at vtkImageData.cxx:1502
> #3 0x41891bb5 in vtkImageData::GetScalarPointerForExtent
> (this=0x812a0a8,
> extent=0x864ffa90) at vtkImageData.cxx:1459
> #4 0x4086a2d5 in vtkImageMathematics::ThreadedExecute (this=0x812acf8,
> inData=0x812b318, outData=0x812ad90, outExt=0x864ffa90, id=1)
> at vtkImageMathematics.cxx:410
> #5 0x40a1b900 in vtkImageMultiThreadedExecute (arg=0x812e960)
> at vtkImageMultipleInputFilter.cxx:219
> #6 0x40031bfd in pthread_start_thread (arg=0x864ffc00) at manager.c:262
> #7 0x40031cdf in pthread_start_thread_event (arg=0x864ffc00)
> at manager.c:285
Perhaps someone has an idea on this?
Yves
The full python code is attached.
<Attachment missing>
-------------- next part --------------
Hi,
The following simple example will always segfault on a multi-cpu machine.
> .....
> adder = vtkImageMathematics()
> adder.SetInput1(a)
> adder.SetInput2(b)
> adder.SetOperationToAdd()
> for x in xrange(10000):
> adder.Update()
> b.DeepCopy(adder.GetOutput())
.....
The code runs fine when a ShallowCopy is used instead.
Its hard to track down since gdb often runs out of allocatable threads
before the crash occurs.
Here is a backtrace, however:
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 559651 (LWP 30674)]
> __strtol_internal (nptr=0x4261eb88 "", endptr=0x12, base=32,
> group=1099504609) at eval.c:36
> 36 eval.c: No such file or directory.
> in eval.c
> (gdb) bt
> #0 __strtol_internal (nptr=0x4261eb88 "", endptr=0x12, base=32,
> group=1099504609) at eval.c:36
> #1 0x419735a7 in vtkAttributeData::GetVoidPointer (this=0x4261eb88,
> id=18)
> at vtkAttributeData.h:109
> #2 0x4189216b in vtkImageData::GetScalarPointer (this=0x812a0a8,
> coordinates=0x864ff918) at vtkImageData.cxx:1502
> #3 0x41891bb5 in vtkImageData::GetScalarPointerForExtent
> (this=0x812a0a8,
> extent=0x864ffa90) at vtkImageData.cxx:1459
> #4 0x4086a2d5 in vtkImageMathematics::ThreadedExecute (this=0x812acf8,
> inData=0x812b318, outData=0x812ad90, outExt=0x864ffa90, id=1)
> at vtkImageMathematics.cxx:410
> #5 0x40a1b900 in vtkImageMultiThreadedExecute (arg=0x812e960)
> at vtkImageMultipleInputFilter.cxx:219
> #6 0x40031bfd in pthread_start_thread (arg=0x864ffc00) at manager.c:262
> #7 0x40031cdf in pthread_start_thread_event (arg=0x864ffc00)
> at manager.c:285
Perhaps someone has an idea on this?
Yves
The full python code is attached.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: testDeepCopy.py
Type: application/octet-stream
Size: 708 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20010726/5f829b6c/attachment-0001.obj>
More information about the vtk-developers
mailing list