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

Crash in FileChooserNative with FileFilter #325

Open
YaLTeR opened this issue Aug 29, 2020 · 2 comments
Open

Crash in FileChooserNative with FileFilter #325

YaLTeR opened this issue Aug 29, 2020 · 2 comments

Comments

@YaLTeR
Copy link

YaLTeR commented Aug 29, 2020

Fedora 32, Wayland, xdg-desktop-portal-gtk-1.7.1-1.fc32.x86_64.

I have an application which uses GtkFileChooserNative to pick a file with a number of MIME types in a GtkFileFilter. Natively it works fine, but from a Flatpak application I frequently get crashes on opening the dialog or opening folders. Also MIME type filtering doesn't work at all when running from a Flatpak application.

Here are a few different backtraces I've got. thread apply all bt full for the first one.

#0  0x00007f631049a660 in g_type_check_instance_is_a (type_instance=type_instance@entry=0x558d8d7d2af0, iface_type=<optimized out>) at ../gobject/gtype.c:4016
#1  0x00007f6310b06361 in _gtk_file_system_model_set_filter (model=0x558d8d8a0560 [GtkFileSystemModel], filter=0x558d8d7d2af0) at gtkfilesystemmodel.c:2018
#2  0x00007f6310afd193 in set_list_model (error=0x0, impl=0x558d8d581c80 [GtkFileChooserWidget]) at gtkfilechooserwidget.c:5357
#3  update_current_folder_get_info_cb (cancellable=0x558d8d205f20 [GCancellable], info=<optimized out>, error=<optimized out>, user_data=0x558d8d33da10) at gtkfilechooserwidget.c:5735
#4  0x00007f6310b01f8f in query_info_callback (source_object=<optimized out>, result=<optimized out>, user_data=user_data@entry=0x558d8d9e06b0) at gtkfilesystem.c:417
#5  0x00007f6310575e5a in g_task_return_now (task=task@entry=0x558d8d83a190 [GTask]) at ../gio/gtask.c:1214
#6  0x00007f6310575e9d in complete_in_idle_cb (task=task@entry=0x558d8d83a190) at ../gio/gtask.c:1228
#7  0x00007f631038945b in g_idle_dispatch (source=source@entry=0x7f62e0000a00, callback=0x7f6310575e90 <complete_in_idle_cb>, user_data=0x558d8d83a190) at ../glib/gmain.c:5755
#8  0x00007f631038d78f in g_main_dispatch (context=0x558d8d09e120) at ../glib/gmain.c:3309
#9  g_main_context_dispatch (context=0x558d8d09e120) at ../glib/gmain.c:3974
#10 0x00007f631038db18 in g_main_context_iterate (context=0x558d8d09e120, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#11 0x00007f631038de33 in g_main_loop_run (loop=0x558d8d12efc0) at ../glib/gmain.c:4241
#12 0x0000558d8c3a6f96 in main (argc=<optimized out>, argv=<optimized out>) at src/xdg-desktop-portal-gtk.c:289
#0  0x00007f5a43652660 in g_type_check_instance_is_a (type_instance=type_instance@entry=0x557d2d0d7b30, iface_type=<optimized out>) at ../gobject/gtype.c:4016
#1  0x00007f5a43cbe361 in _gtk_file_system_model_set_filter (model=0x557d2d14a0f0 [GtkFileSystemModel], filter=0x557d2d0d7b30) at gtkfilesystemmodel.c:2018
#2  0x00007f5a43cb5193 in set_list_model (error=0x0, impl=0x557d2d0d7700 [GtkFileChooserWidget]) at gtkfilechooserwidget.c:5357
#3  update_current_folder_get_info_cb (cancellable=0x557d2d107320 [GCancellable], info=<optimized out>, error=<optimized out>, user_data=0x557d2d2f81f0) at gtkfilechooserwidget.c:5735
#4  0x00007f5a43cb9f8f in query_info_callback (source_object=<optimized out>, result=<optimized out>, user_data=user_data@entry=0x557d2d047040) at gtkfilesystem.c:417
#5  0x00007f5a4372de5a in g_task_return_now (task=task@entry=0x557d2d027d80 [GTask]) at ../gio/gtask.c:1214
#6  0x00007f5a4372de9d in complete_in_idle_cb (task=task@entry=0x557d2d027d80) at ../gio/gtask.c:1228
#7  0x00007f5a4354145b in g_idle_dispatch (source=source@entry=0x7f5a04003570, callback=0x7f5a4372de90 <complete_in_idle_cb>, user_data=0x557d2d027d80) at ../glib/gmain.c:5755
#8  0x00007f5a4354578f in g_main_dispatch (context=0x557d2cb02a50) at ../glib/gmain.c:3309
#9  g_main_context_dispatch (context=0x557d2cb02a50) at ../glib/gmain.c:3974
#10 0x00007f5a43545b18 in g_main_context_iterate (context=0x557d2cb02a50, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#11 0x00007f5a43545e33 in g_main_loop_run (loop=0x557d2cc59180) at ../glib/gmain.c:4241
#12 0x0000557d2b2c1f96 in main (argc=<optimized out>, argv=<optimized out>) at src/xdg-desktop-portal-gtk.c:289
#0  0x00007fa06c658354 in _gtk_file_system_model_set_filter (model=0x555c6af92480 [GtkFileSystemModel], filter=0x555c6b200890) at gtkfilesystemmodel.c:2018
#1  0x00007fa06c65072c in recent_setup_model (impl=0x555c6b117cb0 [GtkFileChooserWidget]) at gtkfilechooserwidget.c:7671
#2  recent_start_loading (impl=0x555c6b117cb0 [GtkFileChooserWidget]) at gtkfilechooserwidget.c:7818
#3  operation_mode_set_recent (impl=0x555c6b117cb0 [GtkFileChooserWidget]) at gtkfilechooserwidget.c:3215
#4  operation_mode_set (impl=0x555c6b117cb0 [GtkFileChooserWidget], mode=OPERATION_MODE_RECENT) at gtkfilechooserwidget.c:3270
#5  0x00007fa06c652469 in set_startup_mode (impl=0x555c6b117cb0 [GtkFileChooserWidget]) at gtkfilechooserwidget.c:4013
#6  gtk_file_chooser_widget_map (widget=0x555c6b117cb0 [GtkFileChooserWidget]) at gtkfilechooserwidget.c:4113
#7  0x00007fa06bfcba05 in _g_closure_invoke_va (closure=closure@entry=0x555c6a9c7e00, return_value=return_value@entry=0x0, instance=instance@entry=0x555c6b117cb0, args=args@entry=0x7ffc73768910, n_params=0, param_types=0x0) at ../gobject/gclosure.c:873
#8  0x00007fa06bfe46e9 in g_signal_emit_valist (instance=0x555c6b117cb0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffc73768910) at ../gobject/gsignal.c:3407
#9  0x00007fa06bfe4c63 in g_signal_emit (instance=instance@entry=0x555c6b117cb0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
#10 0x00007fa06c819148 in gtk_widget_map (widget=0x555c6b117cb0 [GtkFileChooserWidget]) at gtkwidget.c:5047
#11 0x00007fa06c592a60 in gtk_box_forall (container=<optimized out>, include_internals=<optimized out>, callback=0x7fa06c5dac20 <gtk_container_map_child>, callback_data=0x0) at gtkbox.c:2675
#12 0x00007fa06c5debb3 in gtk_container_map (widget=0x555c6af9caf0 [GtkBox]) at gtkcontainer.c:3696
#13 0x00007fa06bfcba05 in _g_closure_invoke_va (closure=closure@entry=0x555c6a9c7e00, return_value=return_value@entry=0x0, instance=instance@entry=0x555c6af9caf0, args=args@entry=0x7ffc73768c40, n_params=0, param_types=0x0) at ../gobject/gclosure.c:873
#14 0x00007fa06bfe46e9 in g_signal_emit_valist (instance=0x555c6af9caf0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffc73768c40) at ../gobject/gsignal.c:3407
#15 0x00007fa06bfe4c63 in g_signal_emit (instance=instance@entry=0x555c6af9caf0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
#16 0x00007fa06c819148 in gtk_widget_map (widget=widget@entry=0x555c6af9caf0 [GtkBox]) at gtkwidget.c:5047
#17 0x00007fa06c82ffe8 in gtk_window_map (widget=0x555c6ad8e5c0 [GtkFileChooserDialog]) at gtkwindow.c:6280
#18 0x00007fa06c6187c2 in gtk_dialog_map (widget=0x555c6ad8e5c0 [GtkFileChooserDialog]) at gtkdialog.c:779
#22 0x00007fa06bfe4c63 in <emit signal ??? on instance 0x555c6ad8e5c0 [GtkFileChooserDialog]> (instance=instance@entry=0x555c6ad8e5c0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
    #19 0x00007fa06bfcb88a in g_closure_invoke (closure=closure@entry=0x555c6a9c7e00, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffc73768f30, invocation_hint=invocation_hint@entry=0x7ffc73768eb0) at ../gobject/gclosure.c:810
    #20 0x00007fa06bfde0ba in signal_emit_unlocked_R (node=node@entry=0x555c6a9ef0d0, detail=detail@entry=0, instance=instance@entry=0x555c6ad8e5c0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc73768f30) at ../gobject/gsignal.c:3672
    #21 0x00007fa06bfe4af9 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc737690b0) at ../gobject/gsignal.c:3498
#23 0x00007fa06c819148 in gtk_widget_map (widget=widget@entry=0x555c6ad8e5c0 [GtkFileChooserDialog]) at gtkwidget.c:5047
#24 0x00007fa06c826686 in gtk_window_show (widget=0x555c6ad8e5c0 [GtkFileChooserDialog]) at gtkwindow.c:6185
#28 0x00007fa06bfe4c63 in <emit signal ??? on instance 0x555c6ad8e5c0 [GtkFileChooserDialog]> (instance=instance@entry=0x555c6ad8e5c0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
    #25 0x00007fa06bfcb88a in g_closure_invoke (closure=closure@entry=0x555c6a9c8020, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffc73769360, invocation_hint=invocation_hint@entry=0x7ffc737692e0) at ../gobject/gclosure.c:810
    #26 0x00007fa06bfde0ba in signal_emit_unlocked_R (node=node@entry=0x555c6a9d5420, detail=detail@entry=0, instance=instance@entry=0x555c6ad8e5c0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc73769360) at ../gobject/gsignal.c:3672
    #27 0x00007fa06bfe4af9 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc737694e0) at ../gobject/gsignal.c:3498
#29 0x00007fa06c812766 in gtk_widget_show (widget=0x555c6ad8e5c0 [GtkFileChooserDialog]) at gtkwidget.c:4848
#30 0x0000555c69161a48 in handle_open (object=<optimized out>, invocation=0x555c6aea7190 [GDBusMethodInvocation], arg_handle=<optimized out>, arg_app_id=<optimized out>, arg_parent_window=<optimized out>, arg_title=<optimized out>, arg_options=0x555c6afde580) at src/filechooser.c:643
#31 0x00007fa06b211af0 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#32 0x00007fa06b2112ab in ffi_call (cif=cif@entry=0x7ffc73769920, fn=fn@entry=0x555c691610b0 <handle_open>, rvalue=<optimized out>, avalue=avalue@entry=0x7ffc73769810) at ../src/x86/ffi64.c:525
#35 0x00007fa06bfde423 in <emit signal ??? on instance 0x555c6aa19640 [XdpImplFileChooserSkeleton]> (node=<optimized out>, detail=0, instance=0x555c6aa19640, emission_return=0x7ffc73769b50, instance_and_params=0x555c6ac3a010) at ../gobject/gsignal.c:3742
    #33 0x00007fa06bfcc38d in g_cclosure_marshal_generic (closure=closure@entry=0x555c6aa73dd0, return_gvalue=return_gvalue@entry=0x7ffc73769ac0, n_param_values=n_param_values@entry=7, param_values=param_values@entry=0x555c6ac3a010, invocation_hint=invocation_hint@entry=0x7ffc73769aa0, marshal_data=marshal_data@entry=0x0) at ../gobject/gclosure.c:1500
    #34 0x00007fa06bfcb88a in g_closure_invoke (closure=0x555c6aa73dd0, return_value=return_value@entry=0x7ffc73769ac0, n_param_values=7, param_values=param_values@entry=0x555c6ac3a010, invocation_hint=invocation_hint@entry=0x7ffc73769aa0) at ../gobject/gclosure.c:810
#36 0x0000555c6918264c in _xdp_impl_file_chooser_skeleton_handle_method_call (connection=<optimized out>, sender=<optimized out>, object_path=<optimized out>, interface_name=0x7fa0540a42b0 "org.freedesktop.impl.portal.FileChooser", method_name=0x7fa0540aebf0 "OpenFile", parameters=<optimized out>, invocation=0x555c6aea7190 [GDBusMethodInvocation], user_data=0x555c6aa19640) at src/xdg-desktop-portal-dbus.c:7362
#37 0x00007fa06c13cfe1 in g_dbus_interface_method_dispatch_helper (interface=<optimized out>, method_call_func=0x555c69182490 <_xdp_impl_file_chooser_skeleton_handle_method_call>, invocation=0x555c6aea7190 [GDBusMethodInvocation]) at ../gio/gdbusinterfaceskeleton.c:613
#38 0x00007fa06c122bd2 in call_in_idle_cb (user_data=user_data@entry=0x555c6aea7190) at ../gio/gdbusconnection.c:4888
#39 0x00007fa06bedb45b in g_idle_dispatch (source=source@entry=0x7fa054094410, callback=0x7fa06c122aa0 <call_in_idle_cb>, user_data=0x555c6aea7190) at ../glib/gmain.c:5755
#40 0x00007fa06bedf78f in g_main_dispatch (context=0x555c6a98e120) at ../glib/gmain.c:3309
#41 g_main_context_dispatch (context=0x555c6a98e120) at ../glib/gmain.c:3974
#42 0x00007fa06bedfb18 in g_main_context_iterate (context=0x555c6a98e120, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#43 0x00007fa06bedfe33 in g_main_loop_run (loop=0x555c6aa7ff80) at ../glib/gmain.c:4241
#44 0x0000555c6915ff96 in main (argc=<optimized out>, argv=<optimized out>) at src/xdg-desktop-portal-gtk.c:289
@matthiasclasen
Copy link
Contributor

Looks like a gtk crash without any specific portal involvment

@sidt4
Copy link
Contributor

sidt4 commented Oct 14, 2023

@matthiasclasen: this is a portal issue. Refer #448

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