Project

General

Profile

Bug #11849

Crash on osx 10.13 when importing dirs and typing a character to filter

Added by Jisakiel Kiel 7 months ago. Updated 7 months ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
-
Target version:
-
Start date:
12/09/2017
Due date:
% Done:

0%

Affected Version:
2.2.5
System:
Mac OS X
bitness:
64-bit
hardware architecture:
amd64/x86

Description

Hey,

I've a reproducible crash every time I try to import folders on my retina mac with 10.13.4 and a mounted USB drive.

Opening the file selector works, but if I type a letter right after (to filter the folders, say "P" for finding pictures), it consistently crashes.

Using darktable 2.2.5 coming from homebrew ( sha256 'f6e8601fca9a08d988dc939484d03e137c16dface48351ef523b5e0bbbaecf18', comes from github).

Trying to debug the crash from console I get:

GTK_DEBUG_GDB="lldb --" /Applications/darktable.app/Contents/MacOS/darktable
(lldb) target create "/Applications/darktable.app/Contents/MacOS/darktable-bin" 
Current executable set to '/Applications/darktable.app/Contents/MacOS/darktable-bin' (x86_64).
(lldb) settings set -- target.run-args  "--datadir" "/Applications/darktable.app/Contents/Resources/share/darktable" "--moduledir" "/Applications/darktable.app/Contents/Resources/lib/darktable" "--localedir" "/Applications/darktable.app/Contents/Resources/share/locale" 
(lldb)
(lldb) r
Process 50342 launched: '/Applications/darktable.app/Contents/MacOS/darktable-bin' (x86_64)
2017-12-09 20:24:57.519653+0000 darktable-bin[50342:1486640] Month 13 is out of bounds
2017-12-09 20:24:57.555955+0000 darktable-bin[50342:1486712] Month 13 is out of bounds
2017-12-09 20:24:57.570955+0000 darktable-bin[50342:1486640] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.

(darktable-bin:50342): GLib-GObject-WARNING **: invalid cast from 'GtkMenuBar' to 'GtkWindow'

(darktable-bin:50342): Gtk-CRITICAL **: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed

(darktable-bin:50342): Gdk-WARNING **: GdkQuartzDisplay does not implement the monitor vfuncs
[temperature] failed to read camera white balance information from `IMG_0001.CR2'!
[temperature] failed to read camera white balance information from `IMG_0001.CR2'!
2017-12-09 20:25:10.169557+0000 darktable-bin[50342:1486640] Month 13 is out of bounds
[temperature] failed to read camera white balance information from `IMG_0001.CR2'!
2017-12-09 20:25:10.307062+0000 darktable-bin[50342:1486640] Month 13 is out of bounds
2017-12-09 20:25:10.309124+0000 darktable-bin[50342:1486640] Month 13 is out of bounds
2017-12-09 20:25:10.310570+0000 darktable-bin[50342:1486640] Month 13 is out of bounds
Process 50342 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x0000000100e3676c libgio-2.0.0.dylib`g_file_hash + 26
libgio-2.0.0.dylib`g_file_hash:
->  0x100e3676c <+26>: movq   (%rbx), %r15
    0x100e3676f <+29>: testq  %r15, %r15
    0x100e36772 <+32>: je     0x100e36779               ; <+39>
    0x100e36774 <+34>: cmpq   %r14, (%r15)
Target 0: (darktable-bin) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
  * frame #0: 0x0000000100e3676c libgio-2.0.0.dylib`g_file_hash + 26
    frame #1: 0x00000001003f63c4 libglib-2.0.0.dylib`g_hash_table_contains + 52
    frame #2: 0x0000000100546511 libgtk-3.0.dylib`hits_added + 44
    frame #3: 0x0000000100fc4f58 libgobject-2.0.0.dylib`g_closure_invoke + 198
    frame #4: 0x0000000100fd8078 libgobject-2.0.0.dylib`signal_emit_unlocked_R + 1754
    frame #5: 0x0000000100fd8c5d libgobject-2.0.0.dylib`g_signal_emit_valist + 1804
    frame #6: 0x0000000100fd9330 libgobject-2.0.0.dylib`g_signal_emit + 120
    frame #7: 0x00000001007c1ccc libgtk-3.0.dylib`-[ResultReceiver submitHits:] + 248
    frame #8: 0x00007fff38fa0a3c CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    frame #9: 0x00007fff38fa092a CoreFoundation`_CFXRegistrationPost + 442
    frame #10: 0x00007fff38fa0672 CoreFoundation`___CFXNotificationPost_block_invoke + 50
    frame #11: 0x00007fff38f5e450 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1664
    frame #12: 0x00007fff38f5d583 CoreFoundation`_CFXNotificationPost + 595
    frame #13: 0x00007fff3b0503c7 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 66
    frame #14: 0x00007fff38fa0a3c CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    frame #15: 0x00007fff38fa092a CoreFoundation`_CFXRegistrationPost + 442
    frame #16: 0x00007fff38fa0672 CoreFoundation`___CFXNotificationPost_block_invoke + 50
    frame #17: 0x00007fff38f5e450 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1664
    frame #18: 0x00007fff38f5d583 CoreFoundation`_CFXNotificationPost + 595
    frame #19: 0x00007fff38ff4337 CoreFoundation`CFNotificationCenterPostNotificationWithOptions + 119
    frame #20: 0x00007fff3a5ec25a Metadata`_postQueryNotification + 225
    frame #21: 0x00007fff3a5b89cd Metadata`___pushNotification_block_invoke + 60
    frame #22: 0x00007fff38fa940c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
    frame #23: 0x00007fff38f8be23 CoreFoundation`__CFRunLoopDoBlocks + 275
    frame #24: 0x00007fff38f8b4ae CoreFoundation`__CFRunLoopRun + 1278
    frame #25: 0x00007fff38f8ad23 CoreFoundation`CFRunLoopRunSpecific + 483
    frame #26: 0x00007fff382a2e26 HIToolbox`RunCurrentEventLoopInMode + 286
    frame #27: 0x00007fff382a2a9f HIToolbox`ReceiveNextEventCommon + 366
    frame #28: 0x00007fff382a2914 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64
    frame #29: 0x00007fff3656df5f AppKit`_DPSNextEvent + 2085
    frame #30: 0x00007fff36d03b4c AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
    frame #31: 0x0000000100c13061 libgdk-3.0.dylib`poll_func + 172
    frame #32: 0x0000000100404bef libglib-2.0.0.dylib`g_main_context_iterate + 337
    frame #33: 0x0000000100404e9b libglib-2.0.0.dylib`g_main_loop_run + 207
    frame #34: 0x00000001005d8c2b libgtk-3.0.dylib`gtk_dialog_run + 334
    frame #35: 0x000000010a7b8259 libimport.so`_lib_import_folder_callback(widget=<unavailable>, user_data=0x00000001101934f0) at import.c:897
    frame #36: 0x0000000100fc5127 libgobject-2.0.0.dylib`_g_closure_invoke_va + 210
    frame #37: 0x0000000100fd89b3 libgobject-2.0.0.dylib`g_signal_emit_valist + 1122
    frame #38: 0x0000000100fd9330 libgobject-2.0.0.dylib`g_signal_emit + 120
    frame #39: 0x0000000100574ab8 libgtk-3.0.dylib`gtk_button_do_release + 57
    frame #40: 0x0000000100574601 libgtk-3.0.dylib`gtk_real_button_released + 98
    frame #41: 0x0000000100fc5127 libgobject-2.0.0.dylib`_g_closure_invoke_va + 210
    frame #42: 0x0000000100fd89b3 libgobject-2.0.0.dylib`g_signal_emit_valist + 1122
    frame #43: 0x0000000100fd9330 libgobject-2.0.0.dylib`g_signal_emit + 120
    frame #44: 0x0000000100574b60 libgtk-3.0.dylib`multipress_released_cb + 38
    frame #45: 0x000000010240d374 libffi.6.dylib`ffi_call_unix64 + 76
    frame #46: 0x000000010240cd08 libffi.6.dylib`ffi_call + 908
    frame #47: 0x0000000100fc627c libgobject-2.0.0.dylib`g_cclosure_marshal_generic_va + 1284
    frame #48: 0x0000000100fc5127 libgobject-2.0.0.dylib`_g_closure_invoke_va + 210
    frame #49: 0x0000000100fd89b3 libgobject-2.0.0.dylib`g_signal_emit_valist + 1122
    frame #50: 0x0000000100fd9330 libgobject-2.0.0.dylib`g_signal_emit + 120
    frame #51: 0x000000010061c0d7 libgtk-3.0.dylib`gtk_gesture_multi_press_end + 91
    frame #52: 0x0000000100fc7ed0 libgobject-2.0.0.dylib`g_cclosure_marshal_VOID__BOXEDv + 184
    frame #53: 0x0000000100fc5127 libgobject-2.0.0.dylib`_g_closure_invoke_va + 210
    frame #54: 0x0000000100fd89b3 libgobject-2.0.0.dylib`g_signal_emit_valist + 1122
    frame #55: 0x0000000100fd9330 libgobject-2.0.0.dylib`g_signal_emit + 120
    frame #56: 0x00000001006191f6 libgtk-3.0.dylib`_gtk_gesture_check_recognized + 57
    frame #57: 0x000000010061a56d libgtk-3.0.dylib`gtk_gesture_handle_event + 212
    frame #58: 0x000000010061d813 libgtk-3.0.dylib`gtk_gesture_single_handle_event + 468
    frame #59: 0x00000001005ee5f9 libgtk-3.0.dylib`gtk_event_controller_handle_event + 107
    frame #60: 0x000000010078c32c libgtk-3.0.dylib`_gtk_widget_run_controllers + 114
    frame #61: 0x000000010065ea72 libgtk-3.0.dylib`_gtk_marshal_BOOLEAN__BOXEDv + 194
    frame #62: 0x0000000100fc5127 libgobject-2.0.0.dylib`_g_closure_invoke_va + 210
    frame #63: 0x0000000100fd89b3 libgobject-2.0.0.dylib`g_signal_emit_valist + 1122
    frame #64: 0x0000000100fd9330 libgobject-2.0.0.dylib`g_signal_emit + 120
    frame #65: 0x000000010078be1c libgtk-3.0.dylib`gtk_widget_event_internal + 256
    frame #66: 0x000000010065d68e libgtk-3.0.dylib`propagate_event + 367
    frame #67: 0x000000010065ca3d libgtk-3.0.dylib`gtk_main_do_event + 985
    frame #68: 0x0000000100beed85 libgdk-3.0.dylib`_gdk_event_emit + 49
    frame #69: 0x0000000100c137b7 libgdk-3.0.dylib`gdk_event_dispatch + 50
    frame #70: 0x0000000100404947 libglib-2.0.0.dylib`g_main_context_dispatch + 262
    frame #71: 0x0000000100404c46 libglib-2.0.0.dylib`g_main_context_iterate + 424
    frame #72: 0x0000000100404e9b libglib-2.0.0.dylib`g_main_loop_run + 207
    frame #73: 0x000000010065c532 libgtk-3.0.dylib`gtk_main + 74
    frame #74: 0x00000001001af0b4 libdarktable.dylib`dt_gui_gtk_run(gui=<unavailable>) at gtk.c:981
    frame #75: 0x000000010000df74 darktable-bin`main(argc=<unavailable>, argv=<unavailable>) at main.c:25
    frame #76: 0x000000010000df38 darktable-bin`start + 52
(lldb) fr select 74
frame #74: 0x00000001001af0b4 libdarktable.dylib`dt_gui_gtk_run(gui=<unavailable>) at gtk.c:981
(lldb) fr v
(dt_gui_gtk_t *) gui = <variable not available>

(GtkWidget *) widget = <no location, value may have been optimized out>

(GtkAllocation) allocation = (x = 363, y = 13, width = 472, height = 639)
(lldb) fr sel 73
frame #73: 0x000000010065c532 libgtk-3.0.dylib`gtk_main + 74
libgtk-3.0.dylib`gtk_main:
    0x10065c532 <+74>: callq  0x1007c7db0               ; symbol stub for: gdk_threads_enter
    0x10065c537 <+79>: callq  0x1007c7942               ; symbol stub for: gdk_flush
    0x10065c53c <+84>: movq   0x45ddfd(%rip), %rdi      ; main_loops
    0x10065c543 <+91>: movq   %rbx, %rsi

Seems a possible workaround might be on https://github.com/cppit/jucipp/commit/8980f50c23fe607c1d82ecd493edeec8bba805fe .

Doesn't seem related to former bug https://redmine.darktable.org/issues/10975 :

➜  MacOS cd /usr/local/share/glib-2.0/schemas
➜  schemas pwd -P
/usr/local/Cellar/glib/2.54.2/share/glib-2.0/schemas

I can still replicate the crash after removing brew's glib out of the way.

History

#1 Updated by Tobias Ellinghaus 7 months ago

That sounds like an upstream GTK bug. Did you try the 2.4.0rc0 DMG?

Also available in: Atom PDF