Gtk 3.24.0 segfaults with Quartz backend
Steps to reproduce
- Install gtk 3.24.0
- Launch any app linked against gtk 3.24.0
- Opening a new window or hovering over a button to produce a tooltip will lead to a segfault.
Version information
- Which version of GTK+ you are using: gtk 3.24.0
- What operating system and version: macOS High Sierra
- If you built GTK+ yourself, the list of options used to configure the build:
--enable-debug=minimal
--disable-dependency-tracking
--prefix=#{prefix}
--disable-glibtest
--enable-introspection=yes
--disable-schemas-compile
--enable-quartz-backend
--disable-x11-backend
Warnings
None
Backtrace
Sent to terminal:
(file-roller:17699): Gtk-WARNING **: 19:25:58.164: Locale not supported by C library.
Using the fallback 'C' locale.
(file-roller:17699): GLib-DEBUG: 19:25:58.213: posix_spawn avoided (fd close requested)
(file-roller:17699): GLib-DEBUG: 19:25:58.283: posix_spawn avoided (fd close requested)
2018-09-03 19:26:06.358485+0100 file-roller[17699:17450368] -[__NSCFType visibleFrame]: unrecognized selector sent to instance 0x10120e420
2018-09-03 19:26:06.360430+0100 file-roller[17699:17450368] [General] An uncaught exception was raised
2018-09-03 19:26:06.360462+0100 file-roller[17699:17450368] [General] -[__NSCFType visibleFrame]: unrecognized selector sent to instance 0x10120e420
2018-09-03 19:26:06.360570+0100 file-roller[17699:17450368] [General] (
0 CoreFoundation 0x00007fff448df2db __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fff6ba80c76 objc_exception_throw + 48
2 CoreFoundation 0x00007fff44977db4 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x00007fff44855820 ___forwarding___ + 1456
4 CoreFoundation 0x00007fff448f45c8 __forwarding_prep_1___ + 120
5 libgdk-3.0.dylib 0x000000010091a442 gdk_quartz_monitor_get_workarea + 104
6 libgtk-3.0.dylib 0x00000001005269a1 gtk_window_guess_default_size + 83
7 libgtk-3.0.dylib 0x000000010051be2c gtk_window_compute_configure_request + 263
8 libgtk-3.0.dylib 0x0000000100522ea7 gtk_window_realize + 567
9 libgobject-2.0.0.dylib 0x0000000100c183cb _g_closure_invoke_va + 212
10 libgobject-2.0.0.dylib 0x0000000100c2b939 g_signal_emit_valist + 1122
11 libgobject-2.0.0.dylib 0x0000000100c2c28c g_signal_emit + 128
12 libgtk-3.0.dylib 0x0000000100506cfd gtk_widget_realize + 285
13 libgtk-3.0.dylib 0x00000001004cdd6a gtk_tooltip_show_tooltip + 425
14 libgtk-3.0.dylib 0x00000001004ce514 tooltip_popup_timeout + 44
15 libgdk-3.0.dylib 0x00000001008eb9ed gdk_threads_dispatch + 50
16 libglib-2.0.0.dylib 0x0000000100190d3b g_timeout_dispatch + 20
17 libglib-2.0.0.dylib 0x00000001001938b5 g_main_context_dispatch + 261
18 libglib-2.0.0.dylib 0x0000000100193bb4 g_main_context_iterate + 426
19 libglib-2.0.0.dylib 0x0000000100193c0c g_main_context_iteration + 55
20 libgio-2.0.0.dylib 0x0000000100afe65e g_application_run + 469
21 file-roller 0x00000001000607fb main + 139
22 libdyld.dylib 0x00007fff6c69a015 start + 1
)
2018-09-03 19:26:06.361260+0100 file-roller[17699:17450368] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType visibleFrame]: unrecognized selector sent to instance 0x10120e420'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff448df2db __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fff6ba80c76 objc_exception_throw + 48
2 CoreFoundation 0x00007fff44977db4 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x00007fff44855820 ___forwarding___ + 1456
4 CoreFoundation 0x00007fff448f45c8 __forwarding_prep_1___ + 120
5 libgdk-3.0.dylib 0x000000010091a442 gdk_quartz_monitor_get_workarea + 104
6 libgtk-3.0.dylib 0x00000001005269a1 gtk_window_guess_default_size + 83
7 libgtk-3.0.dylib 0x000000010051be2c gtk_window_compute_configure_request + 263
8 libgtk-3.0.dylib 0x0000000100522ea7 gtk_window_realize + 567
9 libgobject-2.0.0.dylib 0x0000000100c183cb _g_closure_invoke_va + 212
10 libgobject-2.0.0.dylib 0x0000000100c2b939 g_signal_emit_valist + 1122
11 libgobject-2.0.0.dylib 0x0000000100c2c28c g_signal_emit + 128
12 libgtk-3.0.dylib 0x0000000100506cfd gtk_widget_realize + 285
13 libgtk-3.0.dylib 0x00000001004cdd6a gtk_tooltip_show_tooltip + 425
14 libgtk-3.0.dylib 0x00000001004ce514 tooltip_popup_timeout + 44
15 libgdk-3.0.dylib 0x00000001008eb9ed gdk_threads_dispatch + 50
16 libglib-2.0.0.dylib 0x0000000100190d3b g_timeout_dispatch + 20
17 libglib-2.0.0.dylib 0x00000001001938b5 g_main_context_dispatch + 261
18 libglib-2.0.0.dylib 0x0000000100193bb4 g_main_context_iterate + 426
19 libglib-2.0.0.dylib 0x0000000100193c0c g_main_context_iteration + 55
20 libgio-2.0.0.dylib 0x0000000100afe65e g_application_run + 469
21 file-roller 0x00000001000607fb main + 139
22 libdyld.dylib 0x00007fff6c69a015 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Process 17699 stopped
LLDB backtrace:
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
* frame #0: 0x00007fff6c7eab66 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007fff6c9b5080 libsystem_pthread.dylib`pthread_kill + 333
frame #2: 0x00007fff6c7461ae libsystem_c.dylib`abort + 127
frame #3: 0x00007fff6a640f8f libc++abi.dylib`abort_message + 245
frame #4: 0x00007fff6a64112b libc++abi.dylib`default_terminate_handler() + 265
frame #5: 0x00007fff6ba82ea3 libobjc.A.dylib`_objc_terminate() + 97
frame #6: 0x00007fff6a65c7c9 libc++abi.dylib`std::__terminate(void (*)()) + 8
frame #7: 0x00007fff6a65c26f libc++abi.dylib`__cxa_throw + 121
frame #8: 0x00007fff6ba80da5 libobjc.A.dylib`objc_exception_throw + 351
frame #9: 0x00007fff44977db4 CoreFoundation`-[NSObject(NSObject) doesNotRecognizeSelector:] + 132
frame #10: 0x00007fff44855820 CoreFoundation`___forwarding___ + 1456
frame #11: 0x00007fff448f45c8 CoreFoundation`__forwarding_prep_1___ + 120
frame #12: 0x000000010091a442 libgdk-3.0.dylib`gdk_quartz_monitor_get_workarea + 104
frame #13: 0x00000001005269a1 libgtk-3.0.dylib`gtk_window_guess_default_size + 83
frame #14: 0x000000010051be2c libgtk-3.0.dylib`gtk_window_compute_configure_request + 263
frame #15: 0x0000000100522ea7 libgtk-3.0.dylib`gtk_window_realize + 567
frame #16: 0x0000000100c183cb libgobject-2.0.0.dylib`_g_closure_invoke_va + 212
frame #17: 0x0000000100c2b939 libgobject-2.0.0.dylib`g_signal_emit_valist + 1122
frame #18: 0x0000000100c2c28c libgobject-2.0.0.dylib`g_signal_emit + 128
frame #19: 0x0000000100506cfd libgtk-3.0.dylib`gtk_widget_realize + 285
frame #20: 0x00000001004cdd6a libgtk-3.0.dylib`gtk_tooltip_show_tooltip + 425
frame #21: 0x00000001004ce514 libgtk-3.0.dylib`tooltip_popup_timeout + 44
frame #22: 0x00000001008eb9ed libgdk-3.0.dylib`gdk_threads_dispatch + 50
frame #23: 0x0000000100190d3b libglib-2.0.0.dylib`g_timeout_dispatch + 20
frame #24: 0x00000001001938b5 libglib-2.0.0.dylib`g_main_context_dispatch + 261
frame #25: 0x0000000100193bb4 libglib-2.0.0.dylib`g_main_context_iterate + 426
frame #26: 0x0000000100193c0c libglib-2.0.0.dylib`g_main_context_iteration + 55
frame #27: 0x0000000100afe65e libgio-2.0.0.dylib`g_application_run + 469
frame #28: 0x00000001000607fb file-roller`main + 139
frame #29: 0x00007fff6c69a015 libdyld.dylib`start + 1
frame #30: 0x00007fff6c69a015 libdyld.dylib`start + 1
Just to be clear: I am the guy who rewrote the quartz screen/monitor stuff last year for gtk-3-22 and gtk-4 and the exception appears to be thrown from a function that I contributed. But haven't submitted any related code since so I have no idea what's going on here...