octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Octaviz segfaults


From: Jordi Gutiérrez Hermoso
Subject: Octaviz segfaults
Date: Mon, 5 May 2008 14:00:03 -0500

Octaviz segfaults on the attached sample script and data.

I'd simplify the test case, but I've honestly have been unable to
figure out what's so particular about this data to make it segfault.
I've tried other similar approaches without getting a segfault.

Also attached you will find a stack trace.

Now, I know that Octaviz isn't really part of Octave proper, but I
really have no idea where else to ask for help. Dragan Tubic, the
former lead developer of Octaviz, has abandoned Octaviz. :-( It's also
hard to tell, as you can see from the tangled web of a stack trace, to
know if the segfault is Octave's, Octaviz's or VTK's fault. I'm
leaning towards Octaviz, as a segfault in the other two would probably
be noticed by members of their respective communities.

I'm not asking for a complete solution... I'm happy to dig through the
code myself and see what's wrong, and in fact, I've already tried. I
am just asking for a little bit of help. My current guess is that
Octaviz is somehow not keeping a proper reference count (#21 in the
stack trace below looks like a likely candidate to look for problems).

Maybe I'm also asking if it's worthwhile rescuing Octaviz. I do think
that VTK produces some of the prettiest graphics all around, but so
much effort is now spent on other graphics backends for Octave, that
perhaps it's ok to let Octaviz die.

Thanks,
- Jordi G. H.

Segfault stack trace:

#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 (address@hidden, nargout=0)
   at /home/jordi/oct/octaviz/Filtering/vtkAlgorithm.cc:955
#10 0x00002b820ca073ba in octave_builtin::do_multi_index_op (this=0x71eb20,
   nargout=0, address@hidden) at ov-builtin.cc:106
#11 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
#12 0x00002b820c9072f2 in feval (address@hidden, address@hidden,
   nargout=0) at parse.y:3552
#13 0x00002b82187fb5a1 in FvtkPolyDataAlgorithm (address@hidden,
   nargout=0) at /home/jordi/oct/octaviz/Filtering/vtkPolyDataAlgorithm.cc:326
#14 0x00002b820ca073ba in octave_builtin::do_multi_index_op (this=0x71e160,
   nargout=0, address@hidden) at ov-builtin.cc:106
#15 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
   this=0x7fff9e921a80, nargout=0, address@hidden) at ov.cc:970
#16 0x00002b820c9072f2 in feval (address@hidden, address@hidden,
   nargout=0) at parse.y:3552
#17 0x00002b821c45f162 in FvtkClipPolyData (address@hidden, nargout=0)
   at /home/jordi/oct/octaviz/Graphics/vtkClipPolyData.cc:493
#18 0x00002b820ca073ba in octave_builtin::do_multi_index_op (this=0x71eac0,
   nargout=0, address@hidden) at ov-builtin.cc:106
#19 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
   this=0x7fff9e922630, nargout=0, address@hidden) at ov.cc:970
#20 0x00002b820c9072f2 in feval (address@hidden, address@hidden,
   nargout=0) at parse.y:3552
#21 0x00002b8215025dbb in vtk_object::subsref (this=0xd90430, address@hidden,
   address@hidden, nargout=0)
   at /home/jordi/oct/octaviz/Common/octaviz.cc:263
#22 0x00002b820c9c3aea in octave_value::subsref (this=0x7fff9e922b30,
   address@hidden, address@hidden, 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, address@hidden) at ov-usr-fcn.cc:459
#27 0x00002b820ca0bf27 in octave_user_function::subsref (this=0x70f470,
   address@hidden, address@hidden, nargout=1) at ov-usr-fcn.cc:325
#28 0x00002b820ca0f931 in octave_user_function::subsref (this=0x70f470,
   address@hidden, address@hidden) at ov-usr-fcn.h:274
#29 0x00002b820c9c3a88 in octave_value::subsref (this=0x7fff9e9235d0,
   address@hidden, address@hidden, 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, address@hidden, address@hidden,
   address@hidden) 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, address@hidden, address@hidden,
   address@hidden) 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, address@hidden) at ov-usr-fcn.cc:459
#50 0x00002b820ca0bf27 in octave_user_function::subsref (this=0x70f5a0,
   address@hidden, address@hidden, nargout=0) at ov-usr-fcn.cc:325
#51 0x00002b820c9c3aea in octave_value::subsref (this=0x7fff9e9266c0,
   address@hidden, address@hidden, 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, address@hidden) at ov-usr-fcn.cc:459
#56 0x00002b820ca0bf27 in octave_user_function::subsref (this=0x70f210,
   address@hidden, address@hidden, nargout=0) at ov-usr-fcn.cc:325
#57 0x00002b820c9c3aea in octave_value::subsref (this=0x7fff9e9270d0,
   address@hidden, address@hidden, 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, address@hidden, address@hidden,
   address@hidden) 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, address@hidden) at ov-usr-fcn.cc:130
#66 0x00002b820c9c2d26 in octave_value::do_multi_index_op (
   this=0x7fff9e928750, nargout=0, address@hidden) 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

Attachment: segfault.tar.gz
Description: GNU Zip compressed data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]