[vtkusers] Possible 64 bit segfault [was: Bug list?]

Jordi Gutiérrez Hermoso jordigh at gmail.com
Fri May 9 19:48:26 EDT 2008


On 09/05/2008, David Cole <david.cole at kitware.com> wrote:
> Can you send along a small snippet of sample code that reproduces the
> crash...?

I've tried. It's Octaviz[1] that's using VTK. I have an Octave script
that I've only managed to get a consistent segfault with some data
set, but I haven't managed to simplify the test case and still get a
segfault.

While I decide if the problem is in Octaviz or VTK, I've submitted a
Debian bug on Octaviz[2] and I'll try debugging this one myself. The
segfault does happen several calls deep into VTK proper. If you'll
excuse the tangle with Octaviz and Octave, below you will find a stack
trace, without debug symbols for VTK If you think it would be helfpul
to compile VTK with debug symbols and produce another stack trace, let
me know. It's mostly out of impatience that I don't have VTK with
debug symbols, because it takes a looooong time to compile VTK. ;-)

You'll observe that the last bit of Octaviz code (which is really VTK
code wrapped with the proper incantations to be called from Octave)
called on #9 of stack trace below before going into VTK proper is
this, from vtkAlgorithm.cc:

      /* ah virtual void Update (); */
    error_flag = 0;

    if (!error_flag)
      {
      vtk_pointer->Update(); // segfault here
      return retval;
      }
    }

Hope I provided somewhat relevant information...

Cheers,
- Jordi G. H.

[1] http://octaviz.sf.net
[2] http://bugs.debian.org/480431

#0  0x00002b8214528efb in vtkMergePoints::InsertUniquePoint ()
 from /usr/lib/libvtkFiltering.so.5.0
#1  0x00002b8214584f51 in vtkTriangle::Clip ()
 from /usr/lib/libvtkFiltering.so.5.0
#2  0x00002b821499146f in vtkClipPolyData::RequestData ()
 from /usr/lib/libvtkGraphics.so.5.0
#3  0x00002b82144c54e4 in vtkExecutive::CallAlgorithm ()
 from /usr/lib/libvtkFiltering.so.5.0
#4  0x00002b82144c1b7c in vtkDemandDrivenPipeline::ExecuteData ()
 from /usr/lib/libvtkFiltering.so.5.0
#5  0x00002b82144c489d in vtkDemandDrivenPipeline::ProcessRequest ()
 from /usr/lib/libvtkFiltering.so.5.0
#6  0x00002b8214576969 in vtkStreamingDemandDrivenPipeline::ProcessRequest ()
 from /usr/lib/libvtkFiltering.so.5.0
#7  0x00002b82144c316e in vtkDemandDrivenPipeline::UpdateData ()
 from /usr/lib/libvtkFiltering.so.5.0
#8  0x00002b821457683b in vtkStreamingDemandDrivenPipeline::Update ()
 from /usr/lib/libvtkFiltering.so.5.0
#9  0x00002b821c676106 in FvtkAlgorithm (args=@0x7fff9e922720, nargout=0)
  at /home/jordi/oct/octaviz/Filtering/vtkAlgorithm.cc:955
#10 0x00002b820ca073ba in octave_builtin::do_multi_index_op (this=0x71eb20,
  nargout=0, args=@0x7fff9e922720) at ov-builtin.cc:106
#11 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
#12 0x00002b820c9072f2 in feval (name=@0x7fff9e9217b0, args=@0x7fff9e922720,
  nargout=0) at parse.y:3552
#13 0x00002b82187fb5a1 in FvtkPolyDataAlgorithm (args=@0x7fff9e922720,
  nargout=0) at /home/jordi/oct/octaviz/Filtering/vtkPolyDataAlgorithm.cc:326
#14 0x00002b820ca073ba in octave_builtin::do_multi_index_op (this=0x71e160,
  nargout=0, args=@0x7fff9e922720) at ov-builtin.cc:106
#15 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
  this=0x7fff9e921a80, nargout=0, idx=@0x7fff9e922720) at ov.cc:970
#16 0x00002b820c9072f2 in feval (name=@0x7fff9e922380, args=@0x7fff9e922720,
  nargout=0) at parse.y:3552
#17 0x00002b821c45f162 in FvtkClipPolyData (args=@0x7fff9e922720, nargout=0)
  at /home/jordi/oct/octaviz/Graphics/vtkClipPolyData.cc:493
#18 0x00002b820ca073ba in octave_builtin::do_multi_index_op (this=0x71eac0,
  nargout=0, args=@0x7fff9e922720) at ov-builtin.cc:106
#19 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
  this=0x7fff9e922630, nargout=0, idx=@0x7fff9e922720) at ov.cc:970
#20 0x00002b820c9072f2 in feval (name=@0x7fff9e9227d0, args=@0x7fff9e922720,
  nargout=0) at parse.y:3552
#21 0x00002b8215025dbb in vtk_object::subsref (this=0xd90430, type=@0xe7d8c8,
  idx=@0x7fff9e922b10, nargout=0)
  at /home/jordi/oct/octaviz/Common/octaviz.cc:263
#22 0x00002b820c9c3aea in octave_value::subsref (this=0x7fff9e922b30,
  type=@0xe7d8c8, idx=@0x7fff9e922b10, nargout=0) at ov.cc:932
#23 0x00002b820cabdbd3 in tree_index_expression::rvalue (this=0xe7d890,
  nargout=0) at pt-idx.cc:385
#24 0x00002b820cad7e6e in tree_statement::eval (this=0xe7db90, silent=false,
  nargout=0, in_function_or_script_body=true) at pt-stmt.cc:124
#25 0x00002b820cad81a7 in tree_statement_list::eval (this=0xe798f0,
  silent=false, nargout=0) at pt-stmt.cc:185
#26 0x00002b820ca0c7a6 in octave_user_function::do_multi_index_op (
  this=0x70f470, nargout=1, args=@0x111b5e0) at ov-usr-fcn.cc:459
#27 0x00002b820ca0bf27 in octave_user_function::subsref (this=0x70f470,
  type=@0xe6c808, idx=@0x7fff9e9235b0, nargout=1) at ov-usr-fcn.cc:325
#28 0x00002b820ca0f931 in octave_user_function::subsref (this=0x70f470,
  type=@0xe6c808, idx=@0x7fff9e9235b0) at ov-usr-fcn.h:274
#29 0x00002b820c9c3a88 in octave_value::subsref (this=0x7fff9e9235d0,
  type=@0xe6c808, idx=@0x7fff9e9235b0, nargout=1) at ov.cc:930
#30 0x00002b820cabdbd3 in tree_index_expression::rvalue (this=0xe6c7d0,
  nargout=1) at pt-idx.cc:385
#31 0x00002b820cabc283 in tree_index_expression::rvalue (this=0xe6c7d0)
  at pt-idx.cc:396
#32 0x00002b820caab9eb in tree_simple_assignment::rvalue (this=0xe6cd70)
  at pt-assign.cc:202
#33 0x00002b820caac42e in tree_simple_assignment::rvalue (this=0xe6cd70,
  nargout=0) at pt-assign.cc:184
#34 0x00002b820cad7e6e in tree_statement::eval (this=0xe6cab0, silent=false,
  nargout=0, in_function_or_script_body=false) at pt-stmt.cc:124
#35 0x00002b820cad81a7 in tree_statement_list::eval (this=0xe66a60,
  silent=false, nargout=0) at pt-stmt.cc:185
#36 0x00002b820cac82ab in tree_simple_for_command::do_for_loop_once (
  this=0xe6dc50, ult=@0x7fff9e9240a0, rhs=@0x7fff9e9241e0,
  quit=@0x7fff9e9241cf) at pt-loop.cc:228
#37 0x00002b820cac3c7d in tree_simple_for_command::eval (this=0xe6dc50)
  at pt-loop.cc:388
#38 0x00002b820cad7d6a in tree_statement::eval (this=0xe6e540, silent=false,
  nargout=0, in_function_or_script_body=false) at pt-stmt.cc:99
#39 0x00002b820cad81a7 in tree_statement_list::eval (this=0xe65100,
  silent=false, nargout=0) at pt-stmt.cc:185
#40 0x00002b820cad626c in tree_if_clause::eval (this=0xe76a60)
  at pt-select.cc:54
#41 0x00002b820cad62be in tree_if_command_list::eval (this=0xe653a0)
  at pt-select.cc:85
#42 0x00002b820cad6337 in tree_if_command::eval (this=0xe76ae0)
  at pt-select.cc:124
#43 0x00002b820cad7d6a in tree_statement::eval (this=0xe75d80, silent=false,
  nargout=0, in_function_or_script_body=false) at pt-stmt.cc:99
#44 0x00002b820cad81a7 in tree_statement_list::eval (this=0xd76b80,
  silent=false, nargout=0) at pt-stmt.cc:185
#45 0x00002b820cac82ab in tree_simple_for_command::do_for_loop_once (
  this=0xe76c90, ult=@0x7fff9e9253a0, rhs=@0x7fff9e9254e0,
  quit=@0x7fff9e9254cf) at pt-loop.cc:228
#46 0x00002b820cac3c7d in tree_simple_for_command::eval (this=0xe76c90)
  at pt-loop.cc:388
#47 0x00002b820cad7d6a in tree_statement::eval (this=0xe76bb0, silent=false,
  nargout=0, in_function_or_script_body=true) at pt-stmt.cc:99
#48 0x00002b820cad81a7 in tree_statement_list::eval (this=0xd62780,
  silent=false, nargout=0) at pt-stmt.cc:185
#49 0x00002b820ca0c7a6 in octave_user_function::do_multi_index_op (
  this=0x70f5a0, nargout=0, args=@0x11160a0) at ov-usr-fcn.cc:459
#50 0x00002b820ca0bf27 in octave_user_function::subsref (this=0x70f5a0,
  type=@0xd4c108, idx=@0x7fff9e9266a0, nargout=0) at ov-usr-fcn.cc:325
#51 0x00002b820c9c3aea in octave_value::subsref (this=0x7fff9e9266c0,
  type=@0xd4c108, idx=@0x7fff9e9266a0, nargout=0) at ov.cc:932
#52 0x00002b820cabdbd3 in tree_index_expression::rvalue (this=0xd4c0d0,
  nargout=0) at pt-idx.cc:385
#53 0x00002b820cad7e6e in tree_statement::eval (this=0xd4c020, silent=false,
  nargout=0, in_function_or_script_body=true) at pt-stmt.cc:124
#54 0x00002b820cad81a7 in tree_statement_list::eval (this=0xce6430,
  silent=false, nargout=0) at pt-stmt.cc:185
#55 0x00002b820ca0c7a6 in octave_user_function::do_multi_index_op (
  this=0x70f210, nargout=0, args=@0x1113ee0) at ov-usr-fcn.cc:459
#56 0x00002b820ca0bf27 in octave_user_function::subsref (this=0x70f210,
  type=@0xc68918, idx=@0x7fff9e9270b0, nargout=0) at ov-usr-fcn.cc:325
#57 0x00002b820c9c3aea in octave_value::subsref (this=0x7fff9e9270d0,
  type=@0xc68918, idx=@0x7fff9e9270b0, nargout=0) at ov.cc:932
#58 0x00002b820cabdbd3 in tree_index_expression::rvalue (this=0xc688e0,
  nargout=0) at pt-idx.cc:385
#59 0x00002b820cad7e6e in tree_statement::eval (this=0xc685d0, silent=false,
  nargout=0, in_function_or_script_body=false) at pt-stmt.cc:124
#60 0x00002b820cad81a7 in tree_statement_list::eval (this=0xb1fe10,
  silent=false, nargout=0) at pt-stmt.cc:185
#61 0x00002b820cac82ab in tree_simple_for_command::do_for_loop_once (
  this=0xc6fc20, ult=@0x7fff9e9277e0, rhs=@0x7fff9e927910,
  quit=@0x7fff9e92791f) at pt-loop.cc:228
#62 0x00002b820cac3877 in tree_simple_for_command::eval (this=0xc6fc20)
  at pt-loop.cc:376
#63 0x00002b820cad7d6a in tree_statement::eval (this=0xc6fbc0, silent=false,
  nargout=0, in_function_or_script_body=true) at pt-stmt.cc:99
#64 0x00002b820cad81a7 in tree_statement_list::eval (this=0x858840,
  silent=false, nargout=0) at pt-stmt.cc:185
#65 0x00002b820ca0bcd3 in octave_user_script::do_multi_index_op (
  this=0x89b650, nargout=0, args=@0x7fff9e928650) at ov-usr-fcn.cc:130
#66 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
  this=0x7fff9e928750, nargout=0, idx=@0x7fff9e928650) at ov.cc:970
---Type <return> to continue, or q <return> to quit---
#67 0x00002b820cabad99 in tree_identifier::rvalue (this=0x8d0a60, nargout=0)
  at pt-id.cc:88
#68 0x00002b820cad7e6e in tree_statement::eval (this=0xc5a250, silent=false,
  nargout=0, in_function_or_script_body=false) at pt-stmt.cc:124
#69 0x00002b820cad81a7 in tree_statement_list::eval (this=0x7f5650,
  silent=false, nargout=0) at pt-stmt.cc:185
#70 0x00002b820c952509 in main_loop () at toplev.cc:291
#71 0x00002b820c8fffb5 in octave_main (argc=1, argv=0x7fff9e928e48, embedded=0)
  at octave.cc:850
#72 0x0000000000400868 in main (argc=1, argv=0x7fff9e928e48) at main.c:35



More information about the vtkusers mailing list