Bug 1648569 - Drag-n-Drop sometimes not working in Nautilus under Wayland
Summary: Drag-n-Drop sometimes not working in Nautilus under Wayland
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: nautilus
Version: 30
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Matthias Clasen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-11-10 16:42 UTC by Yaroslav Nikitenko
Modified: 2020-05-26 18:29 UTC (History)
13 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-05-26 18:29:15 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Backtrace (18.06 KB, text/plain)
2019-08-19 19:43 UTC, Michael Catanzaro
no flags Details

Description Yaroslav Nikitenko 2018-11-10 16:42:26 UTC
Description of problem:

I tried to move several files to a folder, and finally nautilus has crashed. Before that the blue selected region remained even when files were shown as moved (I had to close the tab to get rid of that)). 

System's "Problem reporting" gives this link:
https://retrace.fedoraproject.org/faf/reports/2368786/

Version-Release number of selected component (if applicable):
Files 3.30.3-stable.

How reproducible:
I couldn't reproduce that now.

Steps to Reproduce:
1. Open Nautilus.
2. Select files (in icon view).
3. Drag them to a folder.

Actual results:
Nautilus didn't move the files, and eventually crashed.

Expected results:
Nautilus moved files into the directory.

Additional info:
I had a similar problem recently in FC 27, but it didn't crash Nautilus then. 
Wayland. 
I have SSD. 
I couldn't add external bug link during form filling when creating the question, but here it is: https://retrace.fedoraproject.org/faf/reports/2368786/

Comment 1 Yaroslav Nikitenko 2018-11-10 16:52:29 UTC
I automatically sent files through ABRT, but don't know where to put this information here and how: https://bugzilla.redhat.com/show_bug.cgi?id=1638751

Comment 2 tn 2018-12-18 08:21:46 UTC
I believe I've observed this too. In my case at least:

- I can't *really* remember if the blue selection remains at all times, but I think it does.
- I also think I remember the icon for directories (the folder icon) doesn't switch to the "open" icon variant when dragging a file to it (when that bug is triggered).
- It also used to happen in f28 (and maybe before), and indeed I don't remember it crashing before f29 (just a modal appearing explaining the file couldn't be moved).
- Cut/paste works, "Move to..." works.
- Perhaps interestingly, if I was to move the files by other means (e.g. cut/paste, "Move to...", or without Nautilus) then the modal (modals?) would say that the files in question didn't exist, implying Nautilus might be blocking until the beginning of the move operation.

Comment 3 Bartłomiej Garbiec 2019-03-19 12:42:01 UTC
It also occurs on my F29, it looks like this:

https://youtu.be/FjYw3p_EyAM

And yes - cut/paste by mouse works well, only drag'n'drop crashes.

Comment 4 Andre Kuehne 2019-05-30 14:29:03 UTC
Same for F30.

Comment 5 cs 2019-06-30 14:21:52 UTC
I have this bug (F30) when I "cut" a file -either via keyboard or menu- then the drag/drop functionality stops. This can be fixed by (a) killing the nautilus process or (b) copy/paste a file.
Looks like something locks the drag/drop while cut a file?

Comment 6 Michael Catanzaro 2019-08-19 19:43:22 UTC
Seems to occur randomly, but should be reproducible after a few tries. Rumor has it you need multiple windows open or need to drag multiple files at once to reproduce. Not sure, but that's the case where I was able to reproduce.

Here's a backtrace that hasn't been mucked up by ABRT:

#0  stop_cache_selection_list (drag_info=0x0) at ../src/nautilus-canvas-dnd.c:375
375	    if (drag_info->file_list_info_handler)
[Current thread is 1 (Thread 0x7f794c7b8ac0 (LWP 106545))]
(gdb) bt
#0  0x00005612593f7a90 in stop_cache_selection_list (drag_info=0x0) at ../src/nautilus-canvas-dnd.c:375
#1  0x00005612593f7a90 in nautilus_canvas_container_receive_dropped_icons
    (y=<optimized out>, x=<optimized out>, context=0x561259e36d80 [GdkWaylandDragContext], container=0x56125a7d23f0 [NautilusCanvasViewContainer]) at ../src/nautilus-canvas-dnd.c:1066
#2  0x00005612593f7a90 in drag_data_received_callback
    (widget=widget@entry=0x56125a7d23f0 [NautilusCanvasViewContainer], context=context@entry=0x561259e36d80 [GdkWaylandDragContext], x=<optimized out>, y=<optimized out>, data=data@entry=0x7ffd03aea1b0, info=<optimized out>, time=0, user_data=0x0) at ../src/nautilus-canvas-dnd.c:1675
#3  0x00007f7950dbea4a in _gtk_marshal_VOID__OBJECT_INT_INT_BOXED_UINT_UINTv
    (closure=0x56125ad10e00, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x56125a10ae40) at gtkmarshalers.c:5998
#4  0x00007f79504cf996 in _g_closure_invoke_va
    (closure=0x56125ad10e00, return_value=0x0, instance=0x56125a7d23f0, args=0x7ffd03ae9c08, n_params=6, param_types=0x56125a10ae40) at ../gobject/gclosure.c:873
#5  0x00007f79504ec1c8 in g_signal_emit_valist
    (instance=instance@entry=0x56125a7d23f0, signal_id=signal_id@entry=192, detail=detail@entry=0, var_args=var_args@entry=0x7ffd03ae9c08) at ../gobject/gsignal.c:3300
#6  0x00007f79504ecf69 in g_signal_emit_by_name
    (instance=instance@entry=0x56125a7d23f0, detailed_signal=detailed_signal@entry=0x7f7950dc9584 "drag-data-received") at ../gobject/gsignal.c:3487
#7  0x00007f7950d8f781 in gtk_drag_selection_received
    (widget=widget@entry=0x56125a0fad00 [GtkWindow], selection_data=selection_data@entry=0x7ffd03aea1b0, time=0, data=0x56125a7d23f0) at gtkdnd.c:1180
#8  0x00007f7950dbc0b2 in _gtk_marshal_VOID__BOXED_UINTv
    (closure=0x56125b7d1ab0, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x56125a12e9e0) at gtkmarshalers.c:3607
#9  0x00007f79504cf996 in _g_closure_invoke_va
    (closure=0x56125b7d1ab0, return_value=0x0, instance=0x56125a0fad00, args=0x7ffd03aea078, n_params=2, param_types=0x56125a12e9e0) at ../gobject/gclosure.c:873
#10 0x00007f79504ec1c8 in g_signal_emit_valist
    (instance=instance@entry=0x56125a0fad00, signal_id=signal_id@entry=180, detail=detail@entry=0, var_args=var_args@entry=0x7ffd03aea078) at ../gobject/gsignal.c:3300
#11 0x00007f79504ecf69 in g_signal_emit_by_name
    (instance=0x56125a0fad00, detailed_signal=detailed_signal@entry=0x7f7950e24604 "selection-received")
    at ../gobject/gsignal.c:3487
#12 0x00007f7950ca5535 in gtk_selection_retrieval_report
    (info=info@entry=0x56125b630290, type=<optimized out>, format=<optimized out>, buffer=<optimized out>, length=<optimized out>, time=time@entry=0) at gtkselection.c:3056
#13 0x00007f7950ca7423 in gtk_selection_convert
    (widget=0x56125a0fad00 [GtkWindow], selection=0x46, target=target@entry=0x53, time_=time_@entry=0)
    at gtkselection.c:1168
#14 0x00007f7950d8f28d in gtk_drag_get_data
    (widget=<optimized out>, context=context@entry=0x561259e36d80 [GdkWaylandDragContext], target=target@entry=0x53, time_=time_@entry=0) at gtkdnd.c:900
#15 0x00005612593f71ee in get_data_on_first_target_we_support
    (widget=widget@entry=0x56125a7d23f0 [NautilusCanvasViewContainer], context=context@entry=0x561259e36d80 [GdkWaylandDragContext], time=time@entry=0, x=x@entry=407, y=y@entry=263) at ../src/nautilus-canvas-dnd.c:560
#16 0x00005612593f7333 in drag_drop_callback
    (widget=widget@entry=0x56125a7d23f0 [NautilusCanvasViewContainer], context=context@entry=0x561259e36d80 [GdkWaylandDragContext], x=407, y=263, time=0, data=<optimized out>) at ../src/nautilus-canvas-dnd.c:1576
#17 0x00007f7950db81bc in _gtk_marshal_BOOLEAN__OBJECT_INT_INT_UINTv
    (closure=0x56125ad10ea0, return_value=0x7ffd03aea510, instance=<optimized out>, args=<optimized out>, marshal_data-
=<optimized out>, n_params=<optimized out>, param_types=0x56125a10c480) at gtkmarshalers.c:884
#18 0x00007f79504cf996 in _g_closure_invoke_va (closure=0x56125ad10ea0, return_value=0x7ffd03aea510, instance=0x56125a7d23f0, args=0x7ffd03aea618, n_params=4, param_types=0x56125a10c480) at ../gobject/gclosure.c:873
#19 0x00007f79504ebe0a in g_signal_emit_valist (instance=instance@entry=0x56125a7d23f0, signal_id=signal_id@entry=190, detail=detail@entry=0, var_args=var_args@entry=0x7ffd03aea618) at ../gobject/gsignal.c:3300
#20 0x00007f79504ecf69 in g_signal_emit_by_name (instance=instance@entry=0x56125a7d23f0, detailed_signal=detailed_signal@entry=0x7f7950df856a "drag-drop") at ../gobject/gsignal.c:3487
#21 0x00007f7950d900b1 in gtk_drag_dest_drop (widget=widget@entry=0x56125a7d23f0 [NautilusCanvasViewContainer], context=context@entry=0x561259e36d80 [GdkWaylandDragContext], x=407, y=263, time=time@entry=0) at gtkdnd.c:1674
#22 0x00007f7950d90b69 in gtk_drag_find_widget (callback=0x7f7950d8fff0 <gtk_drag_dest_drop>, time=0, y=<optimized out>, x=<optimized out>, info=0x56125aa09490, context=0x561259e36d80 [GdkWaylandDragContext], widget=0x56125a7d23f0 [NautilusCanvasViewContainer]) at gtkdnd.c:1270
#23 0x00007f7950d90b69 in _gtk_drag_dest_handle_event (toplevel=toplevel@entry=0x56125a38c750 [NautilusWindow], event=event@entry=0x56125b065010) at gtkdnd.c:1091
#24 0x00007f7950c1f993 in gtk_main_do_event (event=0x56125b065010) at gtkmain.c:1933
#25 0x00007f7950c1f993 in gtk_main_do_event (event=<optimized out>) at gtkmain.c:1685
#26 0x00007f7950909f49 in _gdk_event_emit (event=event@entry=0x56125b065010) at gdkevents.c:73
#27 0x00007f7950968476 in gdk_event_source_dispatch (base=base@entry=0x56125a0f7b50, callback=<optimized out>, data=<optimized out>) at gdkeventsource.c:124
#28 0x00007f7951132edd in g_main_dispatch (context=0x56125989abd0) at ../glib/gmain.c:3189
#29 0x00007f7951132edd in g_main_context_dispatch (context=context@entry=0x56125989abd0) at ../glib/gmain.c:3854
#30 0x00007f7951133270 in g_main_context_iterate (context=context@entry=0x56125989abd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3927
#31 0x00007f7951133313 in g_main_context_iteration (context=context@entry=0x56125989abd0, may_block=may_block@entry=1) at ../glib/gmain.c:3988
#32 0x00007f79505f3495 in g_application_run (application=0x561259885140 [NautilusApplication], argc=<optimized out>, argv=<optimized out>) at ../gio/gapplication.c:2516
#33 0x00005612593588f7 in main (argc=2, argv=0x7ffd03aeab68) at ../src/nautilus-main.c:81

I'll attach a full version with member variables.

Comment 7 Michael Catanzaro 2019-08-19 19:43:48 UTC
Created attachment 1605874 [details]
Backtrace

Comment 8 ingli 2020-03-23 15:27:20 UTC
I am not sure whether this belongs here

Whist drag and drop works for me between two nautilus/Files windows, it does not work when I want to drag&drop a folder from a Files window onto a Nautilus interface that is opened as a consequence of a thunderbird "save attachment as..." operation. On X.org it works.

5.5.10-200.fc31.x86_64 

Cheers

Comment 9 Ben Cotton 2020-04-30 20:19:24 UTC
This message is a reminder that Fedora 30 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 30 on 2020-05-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '30'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 30 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 10 Ben Cotton 2020-05-26 18:29:15 UTC
Fedora 30 changed to end-of-life (EOL) status on 2020-05-26. Fedora 30 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.