Bug 467828 - openvrml-xembed segfaults on http://cic.nist.gov/vrml/nistlogo.wrl
Summary: openvrml-xembed segfaults on http://cic.nist.gov/vrml/nistlogo.wrl
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: openvrml
Version: 9
Hardware: i686
OS: Linux
medium
high
Target Milestone: ---
Assignee: Braden McDaniel
QA Contact: Fedora Extras Quality Assurance
URL: http://cic.nist.gov/vrml/nistlogo.wrl
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-10-21 05:15 UTC by Matt McCutchen
Modified: 2008-10-30 12:56 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-10-30 12:56:02 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Matt McCutchen 2008-10-21 05:15:27 UTC
Description of problem:
openvrml-xembed segfaults when I try to view http://cic.nist.gov/vrml/nistlogo.wrl .

Version-Release number of selected component (if applicable):
openvrml-0.17.9-1.0.fc9.i386
dbus-1.2.4-1.fc9.i386
dbus-glib-0.74-8.fc9.i386
glib2-2.16.6-1.fc9.i386

How reproducible:
Always

Steps to Reproduce:
1. gdb /usr/libexec/openvrml-xembed
2. In another terminal: openvrml-player http://cic.nist.gov/vrml/nistlogo.wrl
  
Actual results:
Program received signal SIGSEGV, Segmentation fault.
#0  dbus_g_method_get_sender (context=<value optimized out>) at dbus-gobject.c:2182
#1  0x0804f78c in openvrml_xembed_browser_factory_create_control (control_factory=0x960c318, host_name=0x9630988 "org.openvrml.BrowserHost-24256", 
    host_obj_path=0x962c440 "/org/openvrml/BrowserHost/24256/0", host_id=0, expect_initial_stream=0, context=0x0) at openvrml-xembed/browserfactory.cpp:288
#2  0x0804ee39 in dbus_glib_marshal_openvrml_xembed_browser_factory_VOID__STRING_BOXED_UINT64_BOOLEAN_POINTER (closure=0xbfd744dc, return_value=0x0, n_param_values=6, 
    param_values=0x962dbe0, invocation_hint=0x0, marshal_data=0x804f690) at openvrml-xembed/browser-factory-server-glue.h:102
#3  0x009538a9 in gobject_message_function (connection=<value optimized out>, message=<value optimized out>, user_data=<value optimized out>) at dbus-gobject.c:1282
#4  0x003ef765 in _dbus_object_tree_dispatch_and_unlock (tree=<value optimized out>, message=<value optimized out>) at dbus-object-tree.c:856
#5  0x003e11e4 in dbus_connection_dispatch (connection=<value optimized out>) at dbus-connection.c:4447
#6  0x0095004d in message_queue_dispatch (source=Could not find the frame base for "message_queue_dispatch".
) at dbus-gmain.c:101
#7  0x0044b008 in IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2012
#8  0x0044e6b3 in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, self=Could not find the frame base for "g_main_context_iterate".
) at gmain.c:2645
#9  0x0044ebd2 in IA__g_main_loop_run (loop=<value optimized out>) at gmain.c:2853
#10 0x060e5d45 in IA__gtk_main () at gtkmain.c:1163
#11 0x0804eb2c in main (argc=0, argv=0xbfd749e4) at openvrml-xembed/main.cpp:110

Expected results:
VRML file is displayed properly.

Comment 1 Braden McDaniel 2008-10-22 22:19:34 UTC
Do you have any better luck with openvrml-player, or does it do the same thing?

Comment 2 Matt McCutchen 2008-10-23 02:12:24 UTC
I am using openvrml-player.  I just meant that openvrml-xembed is the actual process that segfaults.  openvrml-player then fails with the following output:

** (openvrml-player:20093): CRITICAL **: Browser creation failed: Message did not receive a reply (timeout by message bus)
**
ERROR:openvrml-player/curlbrowserhost.cpp:347:void openvrml_player_curl_browser_host_load_url(OpenvrmlPlayerCurlBrowserHost*, const char*): assertion failed: (host->priv->browser)
Aborted

Comment 3 Braden McDaniel 2008-10-23 04:10:00 UTC
Ah.  I'm sorry, I see that, now.  For some reason I assumed you were using the Mozilla plug-in.

I'm not seeing this on my normal development box, which is x86_64.  However, I've been able to reproduce it on an i386 machine.  Hopefully I'll be able to find the exact cause soon.

Comment 4 Fedora Update System 2008-10-27 06:37:29 UTC
openvrml-0.17.10-1.0.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/openvrml-0.17.10-1.0.fc9

Comment 5 Matt McCutchen 2008-10-27 14:08:48 UTC
With openvrml-0.17.10-1.0.fc9.i386, I can view the NIST logo but not the VRML file I originally wanted to view, http://www.cs.umd.edu/csic/model/VRML/CSIC.wrl .  When I run openvrml-player on this file, the player window opens but it is frozen, and no segfault appears in dmesg output.  I got this stack trace from the openvrml-xembed process:

#0  0x00110416 in __kernel_vsyscall ()
#1  0x0049c095 in pthread_cond_wait () from /lib/libpthread.so.0
#2  0x00819e34 in boost::detail::condition_impl::do_wait (this=Could not find the frame base for "boost::detail::condition_impl::do_wait(pthread_mutex_t*)".
) at libs/thread/src/condition.cpp:371
#3  0x08052539 in openvrml_xembed::plugin_streambuf::get_url_result (this=0x8eedcc8) at /usr/include/boost/thread/condition.hpp:150
#4  0x08055f37 in do_get_resource (this=0x8ecfb28, uri=@0xbf8b94dc) at openvrml-xembed/browser.cpp:1092
#5  0x00c9fdd8 in openvrml::resource_fetcher::get_resource (this=0x8ecfb28, uri=@0xbf8b94dc) at libopenvrml/openvrml/browser.cpp:6361
#6  0x00d25d32 in openvrml::scene::get_resource (this=0x8ef8e48, url=@0x8efe6b0) at libopenvrml/openvrml/browser.cpp:9225
#7  0x00ee951e in do_render_texture (this=0x8f2e380, v=@0x8edf140) at libopenvrml/openvrml/vrml97node.cpp:12624
#8  0x00c3acc6 in openvrml::texture_node::render_texture (this=0x8f2e4f8, v=@0x8edf140) at libopenvrml/openvrml/node.cpp:4453
#9  0x00e32d34 in do_render_appearance (this=0x8f2e8b0, v=@0x8edf140) at libopenvrml/openvrml/vrml97node.cpp:5024
#10 0x00c2f77e in openvrml::appearance_node::render_appearance (this=0x8f2ea28, v=@0x8edf140, context=
      {modelview = 0xbf8b97a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/node.cpp:3094
#11 0x00e300ed in do_render_child (this=0x8f31578, v=@0x8edf140, context={modelview = 0xbf8b97a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true})
    at libopenvrml/openvrml/vrml97node.cpp:19356
#12 0x00c2f71e in openvrml::child_node::render_child (this=0x8f316f0, v=@0x8edf140, context=
      {modelview = 0xbf8b97a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/node.cpp:3359
#13 0x00e5c5cc in do_render_child (this=0x8f364b8, viewer=@0x8edf140, context=
      {modelview = 0xbf8b97a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/vrml97node.cpp:2324
#14 0x00c2f71e in openvrml::child_node::render_child (this=0x8f36948, v=@0x8edf140, context=
      {modelview = 0xbf8b97a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/node.cpp:3359
#15 0x00e5d0ac in render_nocull (this=0x8f388f0, viewer=@0x8edf140, context=
      {modelview = 0xbf8b97a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/vrml97node.cpp:2324
#16 0x00e5d486 in do_render_child (this=0x8f388f0, viewer=@0x8edf140, context=
      {modelview = 0xbf8b97a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/vrml97node.cpp:25860
#17 0x00c2f71e in openvrml::child_node::render_child (this=0x8f38c24, v=@0x8edf140, context=
      {modelview = 0xbf8b98a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/node.cpp:3359
#18 0x00e5d0ac in render_nocull (this=0x8f43a40, viewer=@0x8edf140, context=
      {modelview = 0xbf8b98a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/vrml97node.cpp:2324
#19 0x00e5d486 in do_render_child (this=0x8f43a40, viewer=@0x8edf140, context=
      {modelview = 0xbf8b98a8, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/vrml97node.cpp:25860
#20 0x00c2f71e in openvrml::child_node::render_child (this=0x8f43d74, v=@0x8edf140, context=
      {modelview = 0xbf8b9a58, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/node.cpp:3359
#21 0x00e5c5cc in do_render_child (this=0xb7bb9a10, viewer=@0x8edf140, context=
      {modelview = 0xbf8b9a58, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/vrml97node.cpp:2324
#22 0x00c2f71e in openvrml::child_node::render_child (this=0xb7bb9ea0, v=@0x8edf140, context=
      {modelview = 0xbf8b9a58, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/node.cpp:3359
#23 0x00c9ff08 in openvrml::scene::render (this=0x8ef8e48, viewer=@0x8edf140, context=
      {modelview = 0xbf8b9a58, cull_flag = openvrml::bounding_volume::partial, draw_bounding_spheres = true}) at libopenvrml/openvrml/browser.cpp:8988
#24 0x00ca0258 in openvrml::browser::render (this=0x8ed28b8) at libopenvrml/openvrml/browser.cpp:8344
#25 0x0011909c in openvrml::gl::viewer::redraw (this=0x8edf140) at libopenvrml-gl/openvrml/gl/viewer.cpp:3982
#26 0x08054016 in openvrml_xembed_browser_expose_event (widget=0x8eb0880, event=0xbf8b9fc4, user_data=0x8edf140) at openvrml-xembed/browser.cpp:680
#27 0x02957576 in _gtk_marshal_BOOLEAN__BOXED (closure=Could not find the frame base for "_gtk_marshal_BOOLEAN__BOXED".
) at gtkmarshalers.c:84
#28 0x008731db in g_closure_invoke () from /lib/libgobject-2.0.so.0
#29 0x00889625 in ?? () from /lib/libgobject-2.0.so.0
#30 0x0088abbb in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#31 0x0088b1b6 in g_signal_emit () from /lib/libgobject-2.0.so.0
#32 0x02ac926d in gtk_widget_event_internal (widget=Could not find the frame base for "gtk_widget_event_internal".
) at gtkwidget.c:4695
#33 0x02ac8edf in IA__gtk_widget_send_expose (widget=Could not find the frame base for "IA__gtk_widget_send_expose".
) at gtkwidget.c:4527
#34 0x029545b4 in IA__gtk_main_do_event (event=Could not find the frame base for "IA__gtk_main_do_event".
) at gtkmain.c:1518
#35 0x001770bd in gdk_window_process_updates_internal (window=Could not find the frame base for "gdk_window_process_updates_internal".
) at gdkwindow.c:2378
#36 0x00177218 in IA__gdk_window_process_all_updates () at gdkwindow.c:2444
#37 0x00176e94 in gdk_window_update_idle (data=Could not find the frame base for "gdk_window_update_idle".
) at gdkwindow.c:2288
#38 0x00155649 in gdk_threads_dispatch (data=Could not find the frame base for "gdk_threads_dispatch".
) at gdk.c:470
#39 0x006372d1 in ?? () from /lib/libglib-2.0.so.0
#40 0x00639208 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#41 0x0063c8b3 in ?? () from /lib/libglib-2.0.so.0
#42 0x0063cdd2 in g_main_loop_run () from /lib/libglib-2.0.so.0
#43 0x02953d45 in IA__gtk_main () at gtkmain.c:1163
#44 0x0804eb42 in main (argc=0, argv=0xbf8ba444) at openvrml-xembed/main.cpp:106

The same thing happens if I download the VRML file and run openvrml-player with a file:/// URL.

Tell me if I should enter a separate bug for this.

Comment 6 Braden McDaniel 2008-10-27 18:34:43 UTC
Yes, please enter a separate bug--either here or upstream:

<http://sourceforge.net/tracker/?group_id=7151&atid=107151>

Comment 7 Matt McCutchen 2008-10-27 19:11:18 UTC
I entered an upstream bug at https://sourceforge.net/tracker/index.php?func=detail&aid=2201630&group_id=7151&atid=107151 .

Comment 8 Fedora Update System 2008-10-30 12:55:59 UTC
openvrml-0.17.10-1.0.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.