Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OS X GTK: ovg_app_window_reset_state() crash on GUI "end call #3

Closed
jhgorse opened this issue Feb 10, 2016 · 6 comments
Closed

OS X GTK: ovg_app_window_reset_state() crash on GUI "end call #3

jhgorse opened this issue Feb 10, 2016 · 6 comments

Comments

@jhgorse
Copy link
Owner

jhgorse commented Feb 10, 2016

bt all output:
http://hastebin.com/oseruqunuw.coffee

frame #35: 0x0000000100004045 one-video-gui` ovg_app_window_reset_state(win=0x000000010388a3c0)  + 213 at ovg-appwin.c:742

fr s 35
frame #35: 0x0000000100004045 one-video-gui` ovg_app_window_reset_state(win=0x000000010388a3c0) + 213 at ovg-appwin.c:742
739 /* Remove old flowbox children */
740 children = gtk_container_get_children (GTK_CONTAINER (priv->peers_video));
741 for (l = children; l != NULL; l = l->next)
-> 742 gtk_container_remove (GTK_CONTAINER (priv->peers_video),
743 GTK_WIDGET (l->data));
744 g_list_free (children);

fr v
(OvgAppWindow *) win = 0x000000010388a3c0
(GList *) children = 0x000000010756e420
(GList *) l = 0x000000010756e420
(OvgAppWindowPrivate *) priv = 0x000000010388a0f0

fr v priv->peers_video
(GtkWidget *) priv->peers_video = 0x000000010403e210

fr v l->data
(gpointer) l->data = 0x00000001038b0520

@tp-m
Copy link
Collaborator

tp-m commented Feb 17, 2016

This looks like something that was just fixed:

commit 057aca2cda1e03a2208f21894c8e263b7f91d38d
Author: Matthew Waters matthew@centricular.com
Date: Tue Feb 16 19:59:13 2016 +1100

gtk(gl)sink: remove the signal handlers on finalize

It's possible that the sink element will be freed before the widget is
destroyed.  When the widget was eventually destroyed, it was attempting to
access member variables of the freed sink struct which resulted in undefined
behaviour.

Fix by disconnecting our signal on finalize.

https://bugzilla.gnome.org/show_bug.cgi?id=762098

The stack trace in the bug report looks exactly like yours.

@jhgorse
Copy link
Owner Author

jhgorse commented Feb 18, 2016

how to reproduce: start a session using the GUI app as caller or callee on OS X. End call on the other computer.

@jhgorse
Copy link
Owner Author

jhgorse commented Feb 18, 2016

@tp-m confirmed that the patch for gst-plugins-bad works to fix this.

Don't know why it seemed to work at first. Perhaps testing error. Back to the same old crash:

(lldb) bt
* thread #1: tid = 0x86bd0f, 0x00007fff99ea9002 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread, stop reason = signal SIGABRT
  * frame #0: 0x00007fff99ea9002 libsystem_kernel.dylib` __pthread_kill  + 10
    frame #1: 0x00007fff988995c5 libsystem_pthread.dylib` pthread_kill  + 90
    frame #2: 0x00007fff925c86e7 libsystem_c.dylib` abort  + 129
    frame #3: 0x0000000100b6c7ed libglib-2.0.0.dylib` g_thread_abort  + 53
    frame #4: 0x0000000100b6c7b8 libglib-2.0.0.dylib` g_mutex_lock  + 87
    frame #5: 0x000000010c467933 libgstgtksink.so` widget_destroy_cb(widget=0x000000010214c4b0, gtk_sink=0x00000001040a9c20)  + 35 at gstgtkbasesink.c:154
    frame #6: 0x0000000100ac641a libgobject-2.0.0.dylib` g_closure_invoke  + 262
    frame #7: 0x0000000100adb3ef libgobject-2.0.0.dylib` signal_emit_unlocked_R  + 1783
    frame #8: 0x0000000100adc042 libgobject-2.0.0.dylib` g_signal_emit_valist  + 1876
    frame #9: 0x0000000100adc712 libgobject-2.0.0.dylib` g_signal_emit  + 134
    frame #10: 0x00000001003be88e libgtk-3.0.dylib` gtk_widget_dispose  + 216
    frame #11: 0x0000000100acb07d libgobject-2.0.0.dylib` g_object_run_dispose  + 46
    frame #12: 0x0000000100239ea7 libgtk-3.0.dylib` gtk_container_destroy  + 116
    frame #13: 0x0000000100ac6473 libgobject-2.0.0.dylib` g_closure_invoke  + 351
    frame #14: 0x0000000100adb823 libgobject-2.0.0.dylib` signal_emit_unlocked_R  + 2859
    frame #15: 0x0000000100adc042 libgobject-2.0.0.dylib` g_signal_emit_valist  + 1876
    frame #16: 0x0000000100adc712 libgobject-2.0.0.dylib` g_signal_emit  + 134
    frame #17: 0x00000001003be88e libgtk-3.0.dylib` gtk_widget_dispose  + 216
    frame #18: 0x0000000100acb07d libgobject-2.0.0.dylib` g_object_run_dispose  + 46
    frame #19: 0x00000001002f6729 libgtk-3.0.dylib` gtk_overlay_forall  + 39
    frame #20: 0x0000000100239ea7 libgtk-3.0.dylib` gtk_container_destroy  + 116
    frame #21: 0x0000000100ac6473 libgobject-2.0.0.dylib` g_closure_invoke  + 351
    frame #22: 0x0000000100adb823 libgobject-2.0.0.dylib` signal_emit_unlocked_R  + 2859
    frame #23: 0x0000000100adc042 libgobject-2.0.0.dylib` g_signal_emit_valist  + 1876
    frame #24: 0x0000000100adc712 libgobject-2.0.0.dylib` g_signal_emit  + 134
    frame #25: 0x00000001003be88e libgtk-3.0.dylib` gtk_widget_dispose  + 216
    frame #26: 0x0000000100acb07d libgobject-2.0.0.dylib` g_object_run_dispose  + 46
    frame #27: 0x0000000100239ea7 libgtk-3.0.dylib` gtk_container_destroy  + 116
    frame #28: 0x0000000100ac641a libgobject-2.0.0.dylib` g_closure_invoke  + 262
    frame #29: 0x0000000100adb823 libgobject-2.0.0.dylib` signal_emit_unlocked_R  + 2859
    frame #30: 0x0000000100adc042 libgobject-2.0.0.dylib` g_signal_emit_valist  + 1876
    frame #31: 0x0000000100adc712 libgobject-2.0.0.dylib` g_signal_emit  + 134
    frame #32: 0x00000001003be88e libgtk-3.0.dylib` gtk_widget_dispose  + 216
    frame #33: 0x0000000100acb217 libgobject-2.0.0.dylib` g_object_unref  + 208
    frame #34: 0x0000000100238d93 libgtk-3.0.dylib` gtk_container_remove  + 66
    frame #35: 0x0000000100004045 one-video-gui` ovg_app_window_reset_state(win=0x000000010382a3c0)  + 213 at ovg-appwin.c:742
    frame #36: 0x0000000100b3213b libglib-2.0.0.dylib` g_main_context_dispatch  + 276
    frame #37: 0x0000000100b32425 libglib-2.0.0.dylib` g_main_context_iterate  + 413
    frame #38: 0x0000000100b3247d libglib-2.0.0.dylib` g_main_context_iteration  + 55
    frame #39: 0x00000001009d40d2 libgio-2.0.0.dylib` g_application_run  + 410
    frame #40: 0x0000000100004dff one-video-gui` main(argc=4, argv=0x00007fff5fbfc720)  + 63 at ovg-main.c:74
    frame #41: 0x00007fff8fb0a5ad libdyld.dylib` start  + 1

@jhgorse jhgorse closed this as completed Feb 18, 2016
@jhgorse jhgorse reopened this Feb 18, 2016
@jhgorse
Copy link
Owner Author

jhgorse commented Feb 18, 2016

Updated gst-plugins-bad to master 22e75a2, broke OS X gtk gui entirely. Don't know where I was before.

@ystreet
Copy link

ystreet commented Feb 18, 2016

git reflog :)

@jhgorse
Copy link
Owner Author

jhgorse commented Feb 22, 2016

Fixed by [18ac9d2].

@ystreet thanks for the tip!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants