GTK crashing on macOS if ApplePersistence is set to 1
Steps to reproduce
- enable ApplePersistence globally using
defaults write -g ApplePersistence -bool yes
- starts gtk3-demo or gtk-demo
- App would crash
bash-3.2$ gtk-demo
2019-11-01 20:31:00.426 gtk-demo[32870:782965] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
2019-11-01 20:31:00.923 gtk-demo[32870:782965] ApplePersistence=YES
Segmentation fault: 11
Version information
gtk3-demo 3.24.10
Backtrace
(lldb) bt all
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x00007fff7685baad libdispatch.dylib`dispatch_release
frame #1: 0x00007fff489953c3 AppKit`-[NSPersistentUIManager dealloc] + 63
frame #2: 0x00007fff47f6df5a AppKit`-[NSPersistentUIManager initWithBundleID:] + 550
frame #3: 0x00007fff4cbe48fa Foundation`_NSFaultInObject + 29
frame #4: 0x00007fff47fb8844 AppKit`-[NSWindow(NSPersistentUISupport) _invalidateRestorableStateOfContents] + 68
frame #5: 0x00007fff47fb87a2 AppKit`-[NSResponder(NSPersistentUISupport) invalidateRestorableState] + 58
frame #6: 0x00007fff47fb81e3 AppKit`-[NSWindow _setWindowNumber:] + 1025
frame #7: 0x00007fff47fe7d70 AppKit`_NSCreateWindowWithOpaqueShape2 + 435
frame #8: 0x00007fff47fe624f AppKit`-[NSWindow _commonAwake] + 1120
frame #9: 0x00007fff47fb712b AppKit`-[NSWindow _commonInitFrame:styleMask:backing:defer:] + 749
frame #10: 0x00007fff47fb68df AppKit`-[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1199
frame #11: 0x00007fff47fb642a AppKit`-[NSWindow initWithContentRect:styleMask:backing:defer:] + 45
frame #12: 0x00007fff48282d08 AppKit`-[NSWindow initWithContentRect:styleMask:backing:defer:screen:] + 52
frame #13: 0x00000001009b4650 libgdk-3.0.dylib`-[GdkQuartzNSWindow initWithContentRect:styleMask:backing:defer:screen:] + 64
frame #14: 0x00000001009c1919 libgdk-3.0.dylib`_gdk_quartz_display_create_window_impl + 1209
frame #15: 0x000000010099f046 libgdk-3.0.dylib`gdk_window_new + 982
frame #16: 0x00000001005f8716 libgtk-3.0.dylib`gtk_window_realize + 1046
frame #17: 0x000000010032e960 libgtk-3.0.dylib`gtk_application_window_real_realize + 96
frame #18: 0x0000000100f7f636 libgobject-2.0.0.dylib`_g_closure_invoke_va + 214
frame #19: 0x0000000100f96da0 libgobject-2.0.0.dylib`g_signal_emit_valist + 1472
frame #20: 0x0000000100f97892 libgobject-2.0.0.dylib`g_signal_emit + 130
frame #21: 0x00000001005d4743 libgtk-3.0.dylib`gtk_widget_realize + 291
frame #22: 0x00000001005f7d41 libgtk-3.0.dylib`gtk_window_show + 81
frame #23: 0x0000000100f7f43d libgobject-2.0.0.dylib`g_closure_invoke + 189
frame #24: 0x0000000100f95e08 libgobject-2.0.0.dylib`signal_emit_unlocked_R + 1032
frame #25: 0x0000000100f972d9 libgobject-2.0.0.dylib`g_signal_emit_valist + 2809
frame #26: 0x0000000100f97892 libgobject-2.0.0.dylib`g_signal_emit + 130
frame #27: 0x00000001005d3eb4 libgtk-3.0.dylib`gtk_widget_show + 212
frame #28: 0x0000000100028a6b gtk3-demo`activate + 859
frame #29: 0x0000000100028ae0 gtk3-demo`command_line + 48
frame #30: 0x000000010144d87c libffi.6.dylib`ffi_call_unix64 + 76
frame #31: 0x000000010144ce01 libffi.6.dylib`ffi_call + 897
frame #32: 0x0000000100f80035 libgobject-2.0.0.dylib`g_cclosure_marshal_generic + 565
frame #33: 0x0000000100f7f43d libgobject-2.0.0.dylib`g_closure_invoke + 189
frame #34: 0x0000000100f960a0 libgobject-2.0.0.dylib`signal_emit_unlocked_R + 1696
frame #35: 0x0000000100f97333 libgobject-2.0.0.dylib`g_signal_emit_valist + 2899
frame #36: 0x0000000100f97892 libgobject-2.0.0.dylib`g_signal_emit + 130
frame #37: 0x0000000100dc2b97 libgio-2.0.0.dylib`g_application_call_command_line + 119
frame #38: 0x0000000100dc4b21 libgio-2.0.0.dylib`g_application_real_local_command_line + 1777
frame #39: 0x0000000100dc28dc libgio-2.0.0.dylib`g_application_run + 316
frame #40: 0x00000001000284f8 gtk3-demo`main + 392
frame #41: 0x00007fff768a93d5 libdyld.dylib`start + 1
thread #2, name = 'gmain'
frame #0: 0x00007fff769e636e libsystem_kernel.dylib`poll + 10
frame #1: 0x000000010101c9d6 libglib-2.0.0.dylib`g_main_context_iterate + 422
frame #2: 0x000000010101e8cd libglib-2.0.0.dylib`glib_worker_main + 141
frame #3: 0x000000010104a222 libglib-2.0.0.dylib`g_thread_proxy + 66
frame #4: 0x00007fff76a9d2eb libsystem_pthread.dylib`_pthread_body + 126
frame #5: 0x00007fff76aa0249 libsystem_pthread.dylib`_pthread_start + 66
frame #6: 0x00007fff76a9c40d libsystem_pthread.dylib`thread_start + 13
thread #3
frame #0: 0x00007fff769dfbfe libsystem_kernel.dylib`__workq_kernreturn + 10
frame #1: 0x00007fff76a9c636 libsystem_pthread.dylib`_pthread_wqthread + 458
frame #2: 0x00007fff76a9c3fd libsystem_pthread.dylib`start_wqthread + 13
thread #4
frame #0: 0x00007fff769dfbfe libsystem_kernel.dylib`__workq_kernreturn + 10
frame #1: 0x00007fff76a9c636 libsystem_pthread.dylib`_pthread_wqthread + 458
frame #2: 0x00007fff76a9c3fd libsystem_pthread.dylib`start_wqthread + 13
thread #5
frame #0: 0x0000000000000000
Same crash is with gtk2 and affecting every gtk app