Bug 328681 - guvcview crashes
Summary: guvcview crashes
Status: RESOLVED FIXED
Alias: None
Product: Oxygen
Classification: Plasma
Component: gtk3-engine (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Hugo Pereira Da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-11 19:18 UTC by nucleo
Modified: 2014-01-10 08:52 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
proposed patch (436 bytes, application/octet-stream)
2013-12-11 21:21 UTC, Hugo Pereira Da Costa
Details

Note You need to log in before you can comment on or make changes to this bug.
Description nucleo 2013-12-11 19:18:25 UTC
guvcview-1.7.2 crashes when starting.
Installed oxygen-gtk3-1.3.0, gtk3-3.10.4, glib2-2.38.2.

Reproducible: Always

Actual Results:  
#0  0xb1ecde9c in Oxygen::WidgetLookup::find (this=this@entry=0x974e448, context=context@entry=0x9753c48, type=159329312)
    at /usr/src/debug/oxygen-gtk3-1.3.0/src/oxygenwidgetlookup.cpp:92
#1  0xb1ecdf7c in Oxygen::WidgetLookup::find (this=0x974e448, context=context@entry=0x9753c48, path=path@entry=0x9824988)
    at /usr/src/debug/oxygen-gtk3-1.3.0/src/oxygenwidgetlookup.cpp:81
#2  0xb1ebf176 in Oxygen::render_background (engine=0xb2904870, context=0x9753c48, x=0, y=0, w=16, h=20)
    at /usr/src/debug/oxygen-gtk3-1.3.0/src/oxygenthemingengine.cpp:214
#3  0xb73f379c in gtk_render_background (context=0x9822840, cr=cr@entry=0x9753c48, x=x@entry=0, y=y@entry=0, width=16, height=20) at gtkstylecontext.c:3961
#4  0xb7416126 in _gtk_text_handle_draw (handle=handle@entry=0x97f5cc0, cr=cr@entry=0x9753c48, pos=pos@entry=GTK_TEXT_HANDLE_POSITION_SELECTION_START)
    at gtktexthandle.c:130
#5  0xb7416244 in _gtk_text_handle_update_shape (handle=handle@entry=0x97f5cc0, window=window@entry=0x98ee1a8, 
    pos=pos@entry=GTK_TEXT_HANDLE_POSITION_SELECTION_START) at gtktexthandle.c:156
#6  0xb7416414 in _gtk_text_handle_create_window (handle=handle@entry=0x97f5cc0, pos=pos@entry=GTK_TEXT_HANDLE_POSITION_SELECTION_START)
    at gtktexthandle.c:219
#7  0xb7416c18 in _gtk_text_handle_set_relative_to (handle=0x97f5cc0, window=0x98ee0f8) at gtktexthandle.c:590
#8  0xb72d6306 in gtk_entry_realize (widget=0x97f3df8) at gtkentry.c:3212
#9  0xb73e16f0 in gtk_spin_button_realize (widget=0x97f3df8) at gtkspinbutton.c:1039
#10 0xb6d454d3 in g_cclosure_marshal_VOID__VOID (closure=0x96d1638, return_value=0x0, n_param_values=1, param_values=0xbf922d60, 
    invocation_hint=0xbf922d08, marshal_data=0xb73e16a0 <gtk_spin_button_realize>) at gmarshal.c:85
#11 0xb6d42275 in g_type_class_meta_marshal (closure=0x96d1638, return_value=0x0, n_param_values=1, param_values=0xbf922d60, invocation_hint=0xbf922d08, 
    marshal_data=0x64) at gclosure.c:970
#12 0xb6d437de in g_closure_invoke (closure=closure@entry=0x96d1638, return_value=return_value@entry=0x0, n_param_values=1, 
    param_values=param_values@entry=0xbf922d60, invocation_hint=invocation_hint@entry=0xbf922d08) at gclosure.c:777
#13 0xb6d55c26 in signal_emit_unlocked_R (node=node@entry=0x96d1650, detail=detail@entry=0, instance=0x97f3df8, emission_return=emission_return@entry=0x0, 
    instance_and_params=0xbf922d60) at gsignal.c:3516
#14 0xb6d5e3c1 in g_signal_emit_valist (instance=instance@entry=0x97f3df8, signal_id=signal_id@entry=8, detail=detail@entry=0, 
    var_args=var_args@entry=0xbf922e9c "0\034\265\266'\321ΓΆ") at gsignal.c:3330
#15 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x97f3df8, signal_id=8, detail=detail@entry=0) at gsignal.c:3386
#16 0xb74aec6f in gtk_widget_realize (widget=widget@entry=0x97f3df8) at gtkwidget.c:4994
#17 0xb74af000 in gtk_widget_map (widget=0x97f3df8) at gtkwidget.c:4526
#18 0xb729d2b8 in gtk_container_map_child (child=0x97f3df8, client_data=0x0) at gtkcontainer.c:3379
#19 0xb7309b40 in gtk_grid_forall (container=0x97bc0b8, include_internals=1, callback=0xb729d270 <gtk_container_map_child>, callback_data=0x0)
    at gtkgrid.c:546
#20 0xb72a0897 in gtk_container_forall (container=container@entry=0x97bc0b8, callback=callback@entry=0xb729d270 <gtk_container_map_child>, 
    callback_data=callback_data@entry=0x0) at gtkcontainer.c:2127
#21 0xb72a0a8f in gtk_container_map (widget=0x97bc0b8) at gtkcontainer.c:3387
#22 0xb6d4552a in g_cclosure_marshal_VOID__VOIDv (closure=0x96d1540, return_value=0x0, instance=0x97bc0b8, args=0xbf92317c "\370\356J\267", 
    marshal_data=0xb72a0a50 <gtk_container_map>, n_params=0, param_types=0x0) at gmarshal.c:115
#23 0xb6d42128 in g_type_class_meta_marshalv (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x97bc0b8, 
    args=args@entry=0xbf92317c "\370\356J\267", marshal_data=marshal_data@entry=0x5c, n_params=n_params@entry=0, param_types=param_types@entry=0x0)
    at gclosure.c:997
#24 0xb6d4398f in _g_closure_invoke_va (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x97bc0b8, 
    args=args@entry=0xbf92317c "\370\356J\267", n_params=0, param_types=0x0) at gclosure.c:840
#25 0xb6d5da83 in g_signal_emit_valist (instance=instance@entry=0x97bc0b8, signal_id=signal_id@entry=6, detail=detail@entry=0, 
    var_args=var_args@entry=0xbf92317c "\370\356J\267") at gsignal.c:3238
#26 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x97bc0b8, signal_id=6, detail=detail@entry=0) at gsignal.c:3386
#27 0xb74aefac in gtk_widget_map (widget=0x97bc0b8) at gtkwidget.c:4528
#28 0xb729d2b8 in gtk_container_map_child (child=0x97bc0b8, client_data=0x0) at gtkcontainer.c:3379
#29 0xb724adf0 in gtk_bin_forall (container=0x97b9998, include_internals=1, callback=0xb729d270 <gtk_container_map_child>, callback_data=0x0)
    at gtkbin.c:171
#30 0xb72a0897 in gtk_container_forall (container=container@entry=0x97b9998, callback=callback@entry=0xb729d270 <gtk_container_map_child>, 
    callback_data=callback_data@entry=0x0) at gtkcontainer.c:2127
#31 0xb72a0a8f in gtk_container_map (widget=0x97b9998) at gtkcontainer.c:3387
#32 0xb6d4552a in g_cclosure_marshal_VOID__VOIDv (closure=0x96d1540, return_value=0x0, instance=0x97b9998, args=0xbf9233ec "\370\356J\267", 
    marshal_data=0xb72a0a50 <gtk_container_map>, n_params=0, param_types=0x0) at gmarshal.c:115
#33 0xb6d42128 in g_type_class_meta_marshalv (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x97b9998, 
    args=args@entry=0xbf9233ec "\370\356J\267", marshal_data=marshal_data@entry=0x5c, n_params=n_params@entry=0, param_types=param_types@entry=0x0)
    at gclosure.c:997
#34 0xb6d4398f in _g_closure_invoke_va (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x97b9998, 
    args=args@entry=0xbf9233ec "\370\356J\267", n_params=0, param_types=0x0) at gclosure.c:840
#35 0xb6d5da83 in g_signal_emit_valist (instance=instance@entry=0x97b9998, signal_id=signal_id@entry=6, detail=detail@entry=0, 
---Type <return> to continue, or q <return> to quit---
    var_args=var_args@entry=0xbf9233ec "\370\356J\267") at gsignal.c:3238
#36 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x97b9998, signal_id=6, detail=detail@entry=0) at gsignal.c:3386
#37 0xb74aefac in gtk_widget_map (widget=0x97b9998) at gtkwidget.c:4528
#38 0xb729d2b8 in gtk_container_map_child (child=0x97b9998, client_data=0x0) at gtkcontainer.c:3379
#39 0xb724adf0 in gtk_bin_forall (container=0x9811378, include_internals=1, callback=0xb729d270 <gtk_container_map_child>, callback_data=0x0)
    at gtkbin.c:171
#40 0xb73cc633 in gtk_scrolled_window_forall (container=0x9811378, include_internals=1, callback=0xb729d270 <gtk_container_map_child>, callback_data=0x0)
    at gtkscrolledwindow.c:1459
#41 0xb72a0897 in gtk_container_forall (container=container@entry=0x9811378, callback=callback@entry=0xb729d270 <gtk_container_map_child>, 
    callback_data=callback_data@entry=0x0) at gtkcontainer.c:2127
#42 0xb72a0a8f in gtk_container_map (widget=0x9811378) at gtkcontainer.c:3387
#43 0xb73cb3bf in gtk_scrolled_window_map (widget=0x9811378) at gtkscrolledwindow.c:3316
#44 0xb6d4552a in g_cclosure_marshal_VOID__VOIDv (closure=0x96d1540, return_value=0x0, instance=0x9811378, args=0xbf9236ac "\370\356J\267", 
    marshal_data=0xb73cb390 <gtk_scrolled_window_map>, n_params=0, param_types=0x0) at gmarshal.c:115
#45 0xb6d42128 in g_type_class_meta_marshalv (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x9811378, 
    args=args@entry=0xbf9236ac "\370\356J\267", marshal_data=marshal_data@entry=0x5c, n_params=n_params@entry=0, param_types=param_types@entry=0x0)
    at gclosure.c:997
#46 0xb6d4398f in _g_closure_invoke_va (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x9811378, 
    args=args@entry=0xbf9236ac "\370\356J\267", n_params=0, param_types=0x0) at gclosure.c:840
#47 0xb6d5da83 in g_signal_emit_valist (instance=instance@entry=0x9811378, signal_id=signal_id@entry=6, detail=detail@entry=0, 
    var_args=var_args@entry=0xbf9236ac "\370\356J\267") at gsignal.c:3238
#48 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x9811378, signal_id=6, detail=detail@entry=0) at gsignal.c:3386
#49 0xb74aefac in gtk_widget_map (widget=0x9811378) at gtkwidget.c:4528
#50 0xb738199a in gtk_notebook_map (widget=0x9829108) at gtknotebook.c:1823
#51 0xb6d4552a in g_cclosure_marshal_VOID__VOIDv (closure=0x96d1540, return_value=0x0, instance=0x9829108, args=0xbf9238bc "\370\356J\267", 
    marshal_data=0xb7381890 <gtk_notebook_map>, n_params=0, param_types=0x0) at gmarshal.c:115
#52 0xb6d42128 in g_type_class_meta_marshalv (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x9829108, 
    args=args@entry=0xbf9238bc "\370\356J\267", marshal_data=marshal_data@entry=0x5c, n_params=n_params@entry=0, param_types=param_types@entry=0x0)
    at gclosure.c:997
#53 0xb6d4398f in _g_closure_invoke_va (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x9829108, 
    args=args@entry=0xbf9238bc "\370\356J\267", n_params=0, param_types=0x0) at gclosure.c:840
#54 0xb6d5da83 in g_signal_emit_valist (instance=instance@entry=0x9829108, signal_id=signal_id@entry=6, detail=detail@entry=0, 
    var_args=var_args@entry=0xbf9238bc "\370\356J\267") at gsignal.c:3238
#55 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x9829108, signal_id=6, detail=detail@entry=0) at gsignal.c:3386
#56 0xb74aefac in gtk_widget_map (widget=0x9829108) at gtkwidget.c:4528
#57 0xb729d2b8 in gtk_container_map_child (child=0x9829108, client_data=0x0) at gtkcontainer.c:3379
#58 0xb724ff7a in gtk_box_forall (container=0x97428a0, include_internals=1, callback=0xb729d270 <gtk_container_map_child>, callback_data=0x0)
    at gtkbox.c:2096
#59 0xb72a0897 in gtk_container_forall (container=container@entry=0x97428a0, callback=callback@entry=0xb729d270 <gtk_container_map_child>, 
    callback_data=callback_data@entry=0x0) at gtkcontainer.c:2127
#60 0xb72a0a8f in gtk_container_map (widget=0x97428a0) at gtkcontainer.c:3387
#61 0xb6d4552a in g_cclosure_marshal_VOID__VOIDv (closure=0x96d1540, return_value=0x0, instance=0x97428a0, args=0xbf923b3c "\370\356J\267", 
    marshal_data=0xb72a0a50 <gtk_container_map>, n_params=0, param_types=0x0) at gmarshal.c:115
#62 0xb6d42128 in g_type_class_meta_marshalv (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x97428a0, 
    args=args@entry=0xbf923b3c "\370\356J\267", marshal_data=marshal_data@entry=0x5c, n_params=n_params@entry=0, param_types=param_types@entry=0x0)
    at gclosure.c:997
#63 0xb6d4398f in _g_closure_invoke_va (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x97428a0, 
    args=args@entry=0xbf923b3c "\370\356J\267", n_params=0, param_types=0x0) at gclosure.c:840
#64 0xb6d5da83 in g_signal_emit_valist (instance=instance@entry=0x97428a0, signal_id=signal_id@entry=6, detail=detail@entry=0, 
    var_args=var_args@entry=0xbf923b3c "\370\356J\267") at gsignal.c:3238
#65 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x97428a0, signal_id=6, detail=detail@entry=0) at gsignal.c:3386
#66 0xb74aefac in gtk_widget_map (widget=0x97428a0) at gtkwidget.c:4528
#67 0xb74c6b70 in gtk_window_map (widget=0x9795218) at gtkwindow.c:5505
#68 0xb6d4552a in g_cclosure_marshal_VOID__VOIDv (closure=0x96d1540, return_value=0x0, instance=0x9795218, args=0xbf923d4c "\370\356J\267", 
    marshal_data=0xb74c6940 <gtk_window_map>, n_params=0, param_types=0x0) at gmarshal.c:115
#69 0xb6d42128 in g_type_class_meta_marshalv (closure=0x96d1540, return_value=0x0, instance=0x9795218, args=0xbf923d4c "\370\356J\267", marshal_data=0x5c, 
    n_params=0, param_types=0x0) at gclosure.c:997
#70 0xb6d43a26 in _g_closure_invoke_va (closure=closure@entry=0x96d1540, return_value=return_value@entry=0x0, instance=instance@entry=0x9795218, 
    args=args@entry=0xbf923d4c "\370\356J\267", n_params=0, param_types=0x0) at gclosure.c:840
#71 0xb6d5da83 in g_signal_emit_valist (instance=instance@entry=0x9795218, signal_id=signal_id@entry=6, detail=detail@entry=0, 
---Type <return> to continue, or q <return> to quit---
    var_args=var_args@entry=0xbf923d4c "\370\356J\267") at gsignal.c:3238
#72 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x9795218, signal_id=6, detail=detail@entry=0) at gsignal.c:3386
#73 0xb74aefac in gtk_widget_map (widget=0x9795218) at gtkwidget.c:4528
#74 0xb74bc708 in gtk_window_show (widget=0x9795218) at gtkwindow.c:5451
#75 0xb6d454d3 in g_cclosure_marshal_VOID__VOID (closure=0x96cdbd0, return_value=0x0, n_param_values=1, param_values=0xbf923fa0, 
    invocation_hint=0xbf923f48, marshal_data=0xb74bc590 <gtk_window_show>) at gmarshal.c:85
#76 0xb6d42275 in g_type_class_meta_marshal (closure=0x96cdbd0, return_value=0x0, n_param_values=1, param_values=0xbf923fa0, invocation_hint=0xbf923f48, 
    marshal_data=0x50) at gclosure.c:970
#77 0xb6d437de in g_closure_invoke (closure=closure@entry=0x96cdbd0, return_value=return_value@entry=0x0, n_param_values=1, 
    param_values=param_values@entry=0xbf923fa0, invocation_hint=invocation_hint@entry=0xbf923f48) at gclosure.c:777
#78 0xb6d55c26 in signal_emit_unlocked_R (node=node@entry=0x96cf5b0, detail=detail@entry=0, instance=0x9795218, emission_return=emission_return@entry=0x0, 
    instance_and_params=0xbf923fa0) at gsignal.c:3516
#79 0xb6d5e3c1 in g_signal_emit_valist (instance=instance@entry=0x9795218, signal_id=signal_id@entry=4, detail=detail@entry=0, 
    var_args=var_args@entry=0xbf9240dc "\240(t\tw\275J\267\240(t\t\270N{\t\320\371\004\b\030Ry\t\240(t\t\002") at gsignal.c:3330
#80 0xb6d5e654 in g_signal_emit (instance=instance@entry=0x9795218, signal_id=4, detail=detail@entry=0) at gsignal.c:3386
#81 0xb74abe31 in gtk_widget_show (widget=0x9795218) at gtkwidget.c:4336
#82 0x0804f9d0 in main (argc=1, argv=0xbf924214) at guvcview.c:660


Crashes only outside gdb.
Works fine with oxygen-gtk3-1.2.1, so what oxygen-gtk3 version recommended for using with gtk3-3.10?
Comment 1 Hugo Pereira Da Costa 2013-12-11 19:21:47 UTC

*** This bug has been marked as a duplicate of bug 328488 ***
Comment 2 nucleo 2013-12-11 19:24:08 UTC
Why this is duplicate?
1.2.0 and 1.2.1 version was fine, so this crash new for 1.3.0 version.
Comment 3 Hugo Pereira Da Costa 2013-12-11 19:25:33 UTC
they are the exact same backtrace.
(please look)
I really suspect something upstream (gtk, or glib)
... and can't reproduce any of the two bugs ...
Comment 4 Hugo Pereira Da Costa 2013-12-11 19:37:01 UTC
How exactly is this crash produced ? 
(the bug reports says: reproducible = always) ?
Comment 5 nucleo 2013-12-11 19:38:54 UTC
Crash happens every time when guvcview started (outside gdb) and only with oxygen-gtk3 1.3.0 version.
Comment 6 Hugo Pereira Da Costa 2013-12-11 19:39:45 UTC
Thanks
So definitly can't reproduce.
Also, the fact that it does not happen in gdb is very suspicious ...
Comment 7 Hugo Pereira Da Costa 2013-12-11 19:49:25 UTC
Can you try compile guvcview manually and see if crash still happens ? 
(it is pretty easy to compile; just did so ...)
Comment 8 nucleo 2013-12-11 19:53:02 UTC
(In reply to comment #7)
> Can you try compile guvcview manually and see if crash still happens ? 
> (it is pretty easy to compile; just did so ...)

Backtrace for compiled manually last 1.7.2 version (previous 1.7.1 also crashes).
Comment 9 Hugo Pereira Da Costa 2013-12-11 21:21:52 UTC
Created attachment 84052 [details]
proposed patch

Ok. Might not be the same bug as the other after all. 
This one should be fixed with the patch in attachment. Can you double check ? 
Uninitialized variable (damn ! that's a real newby mistake)
Also explains why it would not crash in gdb
Comment 10 Hugo Pereira Da Costa 2013-12-11 21:22:21 UTC
... and that it does not crash on all systems. Depends how lucky you are at compile time ...
Comment 11 nucleo 2013-12-11 21:33:04 UTC
No crash with 1.3.0 built with patch but I don't know about how was I lucky this time.
Comment 12 Hugo Pereira Da Costa 2013-12-11 21:34:40 UTC
hopefully you're not.
At least the patch fixes a _real_ bug, that can result in crashes at the exact right place that what you had ...
Comment 13 Hugo Pereira Da Costa 2013-12-11 21:35:37 UTC
Anyway. I'll push the change and will re-release (damn!)
thanks for reporting the issue and insisting.

Hugo
Comment 14 Hugo Pereira Da Costa 2013-12-11 21:36:12 UTC
Git commit 0ed4fff5884c1b7b80ba21fc6f92edfa8e7ee6f2 by Hugo Pereira Da Costa.
Committed on 11/12/2013 at 21:23.
Pushed by hpereiradacosta into branch 'gtk3'.

Fixed uninitialized variable in oxygenwidgetlookup.

M  +2    -1    src/oxygenwidgetlookup.cpp

http://commits.kde.org/oxygen-gtk/0ed4fff5884c1b7b80ba21fc6f92edfa8e7ee6f2
Comment 15 Hugo Pereira Da Costa 2014-01-10 08:52:07 UTC
Git commit 452d7b20fa8b7dfc4aebf77189da1834f98e91b8 by Hugo Pereira Da Costa.
Committed on 11/12/2013 at 21:23.
Pushed by hpereiradacosta into branch 'gtk3-1.2'.

Fixed uninitialized variable in oxygenwidgetlookup.

M  +2    -1    src/oxygenwidgetlookup.cpp

http://commits.kde.org/oxygen-gtk/452d7b20fa8b7dfc4aebf77189da1834f98e91b8