After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 758248 - Open With... Filetype Association Segfaulted
Open With... Filetype Association Segfaulted
Status: RESOLVED OBSOLETE
Product: glib
Classification: Platform
Component: gio
2.46.x
Other Windows
: Normal normal
: ---
Assigned To: gtkdev
gtkdev
Depends on:
Blocks:
 
 
Reported: 2015-11-17 22:22 UTC by Bakhtiar Hasmanan
Modified: 2018-05-24 18:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bakhtiar Hasmanan 2015-11-17 22:22:33 UTC
Test case: gtk3-demo > pickers > Mail > Other Application > Choose any > Select
Above will segfault.

Under GDB unfortunately can't trace the last crashing function:

(gdb) bt
  • #0 ??
  • #1 g_app_info_set_as_last_used_for_type
    at gappinfo.c line 336
  • #2 add_or_find_application
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #3 gtk_app_chooser_dialog_response
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #4 g_cclosure_marshal_VOID__INT
    at gmarshal.c line 1162
  • #5 g_closure_invoke
    at gclosure.c line 801
  • #6 signal_emit_unlocked_R
    at gsignal.c line 3627
  • #7 g_signal_emit_valist
    at gsignal.c line 3383
  • #8 g_signal_emit
    at gsignal.c line 3439
  • #9 gtk_dialog_response
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #10 action_widget_activated
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #11 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 905
  • #12 _g_closure_invoke_va
    at gclosure.c line 864
  • #13 g_signal_emit_valist
    at gsignal.c line 3292
  • #14 g_signal_emit
    at gsignal.c line 3439
  • #15 gtk_button_clicked
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #16 gtk_button_do_release
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #17 gtk_real_button_released
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #18 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 905
  • #19 g_type_class_meta_marshalv
    at gclosure.c line 1021
  • #20 _g_closure_invoke_va
    at gclosure.c line 864
  • #20 _g_closure_invoke_va
    at gclosure.c line 864
  • #21 g_signal_emit_valist
    at gsignal.c line 3292
  • #22 g_signal_emit
    at gsignal.c line 3439
  • #23 multipress_released_cb
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #24 ffi_call_win32
    at ../src/x86/win32.S line 589
  • #25 ffi_call
    from e:\rtvc100-32\bin\libffi-6.dll
  • #26 _fu19__ffi_type_pointer
    at gclosure.c line 1600
  • #27 _g_closure_invoke_va
    at gclosure.c line 864
  • #28 g_signal_emit_valist
    at gsignal.c line 3292
  • #29 g_signal_emit
    at gsignal.c line 3439
  • #30 gtk_gesture_multi_press_end
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #31 g_cclosure_marshal_VOID__BOXEDv
    at gmarshal.c line 1950
  • #32 g_type_class_meta_marshalv
    at gclosure.c line 1021
  • #33 _g_closure_invoke_va
    at gclosure.c line 864
  • #34 g_signal_emit_valist
    at gsignal.c line 3292
  • #35 g_signal_emit
    at gsignal.c line 3439
  • #36 _gtk_gesture_set_recognized
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #37 _gtk_gesture_check_recognized
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #38 gtk_gesture_handle_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #39 gtk_gesture_single_handle_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #40 gtk_event_controller_handle_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #41 _gtk_widget_run_controllers
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #42 gtk_widget_real_button_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #43 _gtk_marshal_BOOLEAN__BOXEDv
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #44 g_type_class_meta_marshalv
    at gclosure.c line 1021
  • #45 _g_closure_invoke_va
    at gclosure.c line 864
  • #46 g_signal_emit_valist
    at gsignal.c line 3292
  • #47 g_signal_emit
    at gsignal.c line 3439
  • #48 gtk_widget_event_internal
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #49 gtk_widget_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #50 propagate_event_up
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #51 propagate_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #52 gtk_propagate_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #53 gtk_main_do_event
    from e:\rtvc100-32\bin\libgtk-3-0.dll
  • #54 _gdk_event_emit
    from e:\rtvc100-32\bin\libgdk-3-0.dll
  • #55 gdk_event_dispatch
    from e:\rtvc100-32\bin\libgdk-3-0.dll
  • #56 g_main_dispatch
    at gmain.c line 3154
  • #57 g_main_context_dispatch
    at gmain.c line 3769
  • #58 g_main_context_iterate
    at gmain.c line 3840
  • #59 g_main_context_iteration
    at gmain.c line 3901
  • #60 g_application_run
    at gapplication.c line 2338
  • #61 main


I try GLib 2.45.2 (before registry file association commits) and it works but for slightly older GTKs since GTK 3.18 need Glib 2.46. Anyhow all older GTK will crashed with Glib 2.45.3 or newer.


OS: WIndows 8.1 64bit
Comment 1 Bakhtiar Hasmanan 2015-11-17 22:28:07 UTC
I see that set_as_last_used_for_type isn't handled yet in g_win32_app_info_iface_init() but older glib is the same...
Comment 2 Bakhtiar Hasmanan 2015-11-17 22:43:35 UTC
I could reproduce this with MyPaint 1.2 when try to edit layer with other associated Apps
Comment 3 Bakhtiar Hasmanan 2015-11-18 22:05:30 UTC
Could anyone reproduce this? just in case...
Comment 4 Andrew Chadwick 2015-12-18 14:49:57 UTC
Confirmed as described in comment 0 in MSYS2 using gtk3-demo.exe under Win7.

* Windows 7 Enterprise
* mingw-w64-x86_64-gtk3 3.18.3-1
* mingw-w64-x86_64-glib2 2.46.2-1

But it's not the same on i686. The crash is earlier there.

* Windows 7 Enterprise
* mingw-w64-i686-gtk3 3.18.3-1
* mingw-w64-i686-glib2 2.46.2-1

The 32-bit version crashes *IMMEDIATELY* when "Other Application" is chosen from the dropdown.
Comment 5 Andrew Chadwick 2015-12-18 15:06:42 UTC
From IRC:

<mclasen> achadwick: my guess would be that it is because: /*  iface->set_as_last_used_for_type = g_win32_app_info_set_as_last_used_for_type;*/
<mclasen> the win32 implementation doesn't have that vfunc, and it gets called unconditionally
Comment 6 Andrew Chadwick 2015-12-18 15:44:05 UTC
Probable downstream occurrence: https://github.com/mypaint/mypaint/issues/531
Comment 7 GNOME Infrastructure Team 2018-05-24 18:20:41 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/glib/issues/1104.