Bug 174161

Summary: [GTK] Crashes in WebCore::PasteboardHelper::fillSelectionData when source file of drag is unavailable
Product: WebKit Reporter: Benjamin Berg <benjamin>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, buildbot, calvaris, cgarcia, mcatanzaro
Priority: P2    
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=168516
Attachments:
Description Flags
Another backtrace
none
Patch
none
Archive of layout-test-results from ews114 for mac-elcapitan
none
Patch calvaris: review+

Description Benjamin Berg 2017-07-05 10:08:19 PDT
When I start dragging a large attachment in evolution the file corresponding to the drag will be unavailable at first (I guess it is downloaded/extracted on the fly in the background). Simply dragging over Epiphany (not even dropping) will cause the below backtrace.

(gdb) bt
#0  0x00007ffff415a8bc in WTFCrash() () at /usr/src/debug/webkitgtk-2.16.3/Source/WTF/wtf/Assertions.cpp:323
#1  0x00007ffff5b18037 in WTF::CrashOnOverflow::crash() () at /usr/src/debug/webkitgtk-2.16.3/Source/WTF/wtf/CheckedArithmetic.h:85
#2  0x00007ffff5b18037 in WTF::CrashOnOverflow::overflowed() () at /usr/src/debug/webkitgtk-2.16.3/Source/WTF/wtf/CheckedArithmetic.h:78
#3  0x00007ffff5b18037 in WTF::Vector<WTF::String, 0ul, WTF::CrashOnOverflow, 16ul>::at(unsigned long) (i=0, this=0x7fffffffc9d0)
    at /usr/src/debug/webkitgtk-2.16.3/Source/WTF/wtf/Vector.h:655
#4  0x00007ffff5b18037 in WTF::Vector<WTF::String, 0ul, WTF::CrashOnOverflow, 16ul>::operator[](unsigned long) (i=0, this=0x7fffffffc9d0)
    at /usr/src/debug/webkitgtk-2.16.3/Source/WTF/wtf/Vector.h:675
#5  0x00007ffff5b18037 in WebCore::PasteboardHelper::fillSelectionData(_GtkSelectionData*, unsigned int, WebCore::SelectionData&) (this=<optimized out>, data=data@entry=0x7fffffffd6f0, selection=...) at /usr/src/debug/webkitgtk-2.16.3/Source/WebCore/platform/gtk/PasteboardHelper.cpp:229
#6  0x00007ffff4b955c8 in WebKit::DragAndDropHandler::dropDataSelection(_GdkDragContext*, _GtkSelectionData*, unsigned int, WebCore::IntPoint&) (this=this@entry=0x555556695600, context=context@entry=0x5555558a0820, selectionData=0x7fffffffd6f0, info=4, position=...) at /usr/src/debug/webkitgtk-2.16.3/Source/WebKit2/UIProcess/gtk/DragAndDropHandler.cpp:193
#7  0x00007ffff4b95644 in WebKit::DragAndDropHandler::dragEntered(_GdkDragContext*, _GtkSelectionData*, unsigned int, unsigned int) (this=0x555556695600, context=0x5555558a0820, selectionData=<optimized out>, info=<optimized out>, time=0) at /usr/src/debug/webkitgtk-2.16.3/Source/WebKit2/UIProcess/gtk/DragAndDropHandler.cpp:208
#8  0x00007ffff1dffab4 in _gtk_marshal_VOID__OBJECT_INT_INT_BOXED_UINT_UINT () at /lib64/libgtk-3.so.0
#12 0x00007ffff00748eb in <emit signal 0x7ffff1f9a580 "drag-data-received" on instance 0x5555565338c0 [EphyWebView]> (instance=0x5555565338c0, detailed_signal=0x7ffff1f9a580 "drag-data-received") at gsignal.c:3487
    #9  0x00007ffff00593e5 in g_closure_invoke (closure=closure@entry=0x555555860550, return_value=return_value@entry=0x0, n_param_values=7, param_values=param_values@entry=0x7fffffffcd90, invocation_hint=invocation_hint@entry=0x7fffffffcd10) at gclosure.c:804
    #10 0x00007ffff006b82d in signal_emit_unlocked_R (node=node@entry=0x5555558601e0, detail=detail@entry=0, instance=instance@entry=0x5555565338c0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcd90) at gsignal.c:3673
    #11 0x00007ffff007405f in g_signal_emit_valist (instance=instance@entry=0x5555565338c0, signal_id=signal_id@entry=107, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffd028)
    at gsignal.c:3391
#13 0x00007ffff1f729bd in gtk_drag_selection_received () at /lib64/libgtk-3.so.0
#17 0x00007ffff00748eb in <emit signal 0x7ffff1ff4344 "selection-received" on instance 0x555555871780 [GtkWindow]> (instance=0x555555871780, detailed_signal=0x7ffff1ff4344 "selection-received") at gsignal.c:3487
    #14 0x00007ffff00593e5 in g_closure_invoke (closure=0x5555566dd2e0, return_value=return_value@entry=0x0, n_param_values=3, param_values=param_values@entry=0x7fffffffd380, invocation_hint=invocation_hint@entry=0x7fffffffd300) at gclosure.c:804
    #15 0x00007ffff006b432 in signal_emit_unlocked_R (node=node@entry=0x5555558a4150, detail=detail@entry=0, instance=instance@entry=0x555555871780, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd380) at gsignal.c:3635
    #16 0x00007ffff007405f in g_signal_emit_valist (instance=instance@entry=0x555555871780, signal_id=signal_id@entry=95, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffd5b8)
    at gsignal.c:3391
#18 0x00007ffff1e85f33 in gtk_selection_retrieval_report () at /lib64/libgtk-3.so.0
#19 0x00007ffff1e89fed in _gtk_selection_notify () at /lib64/libgtk-3.so.0
#20 0x00007ffff1df9091 in _gtk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-3.so.0
---Type <return> to continue, or q <return> to quit---
#21 0x00007ffff0059614 in _g_closure_invoke_va (closure=closure@entry=0x555555898f90, return_value=return_value@entry=0x7fffffffd960, instance=instance@entry=0x555555871780, args=args@entry=0x7fffffffda30, n_params=<optimized out>, param_types=0x555555872020) at gclosure.c:867
#22 0x00007ffff00738b3 in g_signal_emit_valist (instance=0x555555871780, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffda30) at gsignal.c:3300
#23 0x00007ffff007443f in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3447
#24 0x00007ffff1f4634c in gtk_widget_event_internal () at /lib64/libgtk-3.so.0
#25 0x00007ffff1df7fc4 in gtk_main_do_event () at /lib64/libgtk-3.so.0
#26 0x00007ffff190d5c5 in _gdk_event_emit () at /lib64/libgdk-3.so.0
#27 0x00007ffff19691d2 in gdk_event_source_dispatch () at /lib64/libgdk-3.so.0
#28 0x00007fffefd80e52 in g_main_dispatch (context=0x55555584e3a0) at gmain.c:3203
#29 0x00007fffefd80e52 in g_main_context_dispatch (context=context@entry=0x55555584e3a0) at gmain.c:3856
#30 0x00007fffefd811d0 in g_main_context_iterate (context=context@entry=0x55555584e3a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3929
#31 0x00007fffefd8127c in g_main_context_iteration (context=context@entry=0x55555584e3a0, may_block=may_block@entry=1) at gmain.c:3990
#32 0x00007ffff0339b9d in g_application_run (application=0x5555558d6270 [EphyShell], argc=1, argv=0x7fffffffde98) at gapplication.c:2381
#33 0x0000555555586bf4 in main ()
(gdb)
Comment 1 Benjamin Berg 2017-07-05 10:24:37 PDT
I guess that in:
        String urlWithLabel(selectionDataToUTF8String(data));

urlWithLabel becomes an empty string. And then
        urlWithLabel.split('\n', pieces);
produces no elements as allowEmptyEntries is set to false in if not provided.
Comment 2 Michael Catanzaro 2017-07-10 11:59:45 PDT
I've hit this several times just selecting text in Epiphany and dragging it within the web view, though I can never reproduce it.
Comment 3 Michael Catanzaro 2017-07-10 12:01:20 PDT
Created attachment 315002 [details]
Another backtrace
Comment 4 Carlos Garcia Campos 2017-07-11 06:12:55 PDT
(In reply to Michael Catanzaro from comment #3)
> Created attachment 315002 [details]
> Another backtrace

This is a different issue, already reported in bug #168516. It happens when signal drag-data-get is emitted in the WebView and DragAndDropHandler::fillDragData is called. It seems that m_draggingSelectionData might be nullptr at that point, we have an ASSERT checking it, though, so it's not supposed to be nullptr.

But this bug happens on drag data received, and DragAndDropHandler::dragEntered is called.

Note there are two different methods named fillSelectionData in PasteboardHelper, this bug happens in one of them and bug #168516 in the other. I can't reproduce any of them, though.
Comment 5 Carlos Garcia Campos 2017-07-11 06:25:38 PDT
Created attachment 315100 [details]
Patch

This is a speculative fix, because I can't reproduce the issue.
Comment 6 Build Bot 2017-07-11 07:45:57 PDT
Comment on attachment 315100 [details]
Patch

Attachment 315100 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/4100804

New failing tests:
storage/indexeddb/modern/new-database-after-user-delete.html
Comment 7 Build Bot 2017-07-11 07:45:58 PDT
Created attachment 315110 [details]
Archive of layout-test-results from ews114 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114  Port: mac-elcapitan  Platform: Mac OS X 10.11.6
Comment 8 Michael Catanzaro 2017-07-11 08:31:05 PDT
Comment on attachment 315100 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=315100&action=review

> Source/WebCore/ChangeLog:14
> +        (WebCore::PasteboardHelper::fillSelectionData): Return early if selection data length is 0, intead of checking

instead
Comment 9 Carlos Garcia Campos 2017-07-12 00:02:35 PDT
Committed r219385: <http://trac.webkit.org/changeset/219385>
Comment 10 Xabier Rodríguez Calvar 2017-08-08 02:47:25 PDT
I just confirmed that I am running a version of webkit with this patch included and it still crashes with:

#0  0x00007f219965d43c in WTFCrash () from /home/calvaris/gnome/jhbuild/build/install/lib/libjavascriptcoregtk-4.0.so.18
No symbol table info available.
#1  0x00007f219b1efe24 in WebCore::PasteboardHelper::fillSelectionData(_GtkSelectionData*, unsigned int, WebCore::SelectionData&) () from /home/calvaris/gnome/jhbuild/build/install/lib/libwebkit2gtk-4.0.so.37
No symbol table info available.
#2  0x00007f219a14a598 in WebKit::DragAndDropHandler::dropDataSelection(_GdkDragContext*, _GtkSelectionData*, unsigned int, WebCore::IntPoint&) ()
   from /home/calvaris/gnome/jhbuild/build/install/lib/libwebkit2gtk-4.0.so.37
No symbol table info available.
#3  0x00007f219a14a604 in WebKit::DragAndDropHandler::dragEntered(_GdkDragContext*, _GtkSelectionData*, unsigned int, unsigned int) () from /home/calvaris/gnome/jhbuild/build/install/lib/libwebkit2gtk-4.0.so.37
No symbol table info available.
#4  0x00007f219e165714 in _gtk_marshal_VOID__OBJECT_INT_INT_BOXED_UINT_UINT (closure=0x55dc8e310e40, return_value=<optimized out>, n_param_values=<optimized out>, param_values=0x7fff48e5c3c0, 
    invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:5566
        cc = 0x55dc8e310e40
        data1 = 0x55dc8fc4ae20
        data2 = <optimized out>
        callback = 0x7f219a132b30 <webkitWebViewBaseDragDataReceived(_GtkWidget*, _GdkDragContext*, int, int, _GtkSelectionData*, unsigned int, unsigned int)>
        __func__ = "_gtk_marshal_VOID__OBJECT_INT_INT_BOXED_UINT_UINT"
#5  0x00007f219eb56755 in g_closure_invoke (closure=closure@entry=0x55dc8e310e40, return_value=return_value@entry=0x0, n_param_values=7, param_values=param_values@entry=0x7fff48e5c3c0, 
    invocation_hint=invocation_hint@entry=0x7fff48e5c360) at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gclosure.c:804
        marshal = <optimized out>
        marshal_data = <optimized out>
        in_marshal = 0
        real_closure = 0x55dc8e310e20
        __func__ = "g_closure_invoke"
#6  0x00007f219eb6952d in signal_emit_unlocked_R (node=node@entry=0x55dc8e310ed0, detail=detail@entry=0, instance=instance@entry=0x55dc8fc4ae20, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fff48e5c3c0) at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3673
        accumulator = 0x0
        emission = {next = 0x7fff48e5c8d0, instance = 0x55dc8fc4ae20, ihint = {signal_id = 93, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 94405767569696}
        handler_list = <optimized out>
        return_accu = 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, 
              v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 93
        max_sequential_handler_number = 29513
        return_value_altered = 0
#7  0x00007f219eb71f91 in g_signal_emit_valist (instance=instance@entry=0x55dc8fc4ae20, signal_id=signal_id@entry=93, detail=detail@entry=0, var_args=var_args@entry=0x7fff48e5c610)
    at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3391
        instance_and_params = 0x7fff48e5c3c0
        signal_return_type = <optimized out>
        param_values = 0x7fff48e5c3d8
        i = <optimized out>
        n_params = <optimized out>
        __func__ = "g_signal_emit_valist"
#8  0x00007f219eb72808 in g_signal_emit_by_name (instance=instance@entry=0x55dc8fc4ae20, detailed_signal=detailed_signal@entry=0x7f219e2f47f0 "drag-data-received")
    at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3487
        var_args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fff48e5c730, reg_save_area = 0x7fff48e5c630}}
        detail = 0
        itype = 94405767569696
        __func__ = "g_signal_emit_by_name"
#9  0x00007f219e2cd8dd in gtk_drag_selection_received (widget=0x55dc8e5b7f50, selection_data=0x7fff48e5cc40, time=7055131, data=0x55dc8fc4ae20) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gtk/gtkdnd.c:1181
        site = <optimized out>
        context = 0x55dc8e5f6cc0
---Type <return> to continue, or q <return> to quit---
        info = 0x7f208c02ae00
        drop_widget = 0x55dc8fc4ae20
        target = 0x84
#10 0x00007f219eb56755 in g_closure_invoke (closure=0x55dc90457770, return_value=return_value@entry=0x0, n_param_values=3, param_values=param_values@entry=0x7fff48e5c940, 
    invocation_hint=invocation_hint@entry=0x7fff48e5c8e0) at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gclosure.c:804
        marshal = <optimized out>
        marshal_data = <optimized out>
        in_marshal = 0
        real_closure = 0x55dc90457750
        __func__ = "g_closure_invoke"
#11 0x00007f219eb69132 in signal_emit_unlocked_R (node=node@entry=0x55dc8e30c190, detail=detail@entry=0, instance=instance@entry=0x55dc8e5b7f50, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fff48e5c940) at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3635
        tmp = <optimized out>
        handler = 0x55dc902a3180
        accumulator = 0x0
        emission = {next = 0x7fff48e5d010, instance = 0x55dc8e5b7f50, ihint = {signal_id = 81, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
        handler_list = 0x55dc902a3180
        return_accu = 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, 
              v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 81
        max_sequential_handler_number = 29513
        return_value_altered = 0
#12 0x00007f219eb71f91 in g_signal_emit_valist (instance=instance@entry=0x55dc8e5b7f50, signal_id=signal_id@entry=81, detail=detail@entry=0, var_args=var_args@entry=0x7fff48e5cb30)
    at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3391
        instance_and_params = 0x7fff48e5c940
        signal_return_type = <optimized out>
        param_values = 0x7fff48e5c958
        i = <optimized out>
        n_params = <optimized out>
        __func__ = "g_signal_emit_valist"
#13 0x00007f219eb72808 in g_signal_emit_by_name (instance=0x55dc8e5b7f50, detailed_signal=detailed_signal@entry=0x7f219e351e24 "selection-received")
    at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3487
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fff48e5cc40, reg_save_area = 0x7fff48e5cb50}}
        detail = 0
        itype = 94405766740384
        __func__ = "g_signal_emit_by_name"
#14 0x00007f219e1e77d3 in gtk_selection_retrieval_report (info=info@entry=0x7f208c00c380, type=<optimized out>, format=<optimized out>, buffer=<optimized out>, length=<optimized out>, time=time@entry=7055131)
    at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gtk/gtkselection.c:3031
        data = {selection = 0xbe, target = 0x84, type = 0x0, format = 0, data = 0x0, length = -1, display = 0x55dc8e2e30e0}
#15 0x00007f219e1e9461 in gtk_selection_convert (widget=0x55dc8e5b7f50, selection=0xbe, target=0x84, time_=7055131) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gtk/gtkselection.c:1143
        owner_widget = <optimized out>
        owner_widget_ptr = 0x55dc8e5b7770
        selection_data = {selection = 0xbe, target = 0x84, type = 0x0, format = 0, data = 0x0, length = -1, display = 0x55dc8e2e30e0}
        info = 0x7f208c00c380
        tmp_list = <optimized out>
        owner_window = <optimized out>
        display = 0x55dc8e2e30e0
        id = <optimized out>
        __func__ = "gtk_selection_convert"
#16 0x00007f219a14b15a in WebKit::DragAndDropHandler::dragDataSelection(_GdkDragContext*, WebCore::IntPoint const&, unsigned int) () from /home/calvaris/gnome/jhbuild/build/install/lib/libwebkit2gtk-4.0.so.37
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#17 0x00007f219a14b41f in WebKit::DragAndDropHandler::dragMotion(_GdkDragContext*, WebCore::IntPoint const&, unsigned int) () from /home/calvaris/gnome/jhbuild/build/install/lib/libwebkit2gtk-4.0.so.37
No symbol table info available.
#18 0x00007f219a132bc3 in webkitWebViewBaseDragMotion(_GtkWidget*, _GdkDragContext*, int, int, unsigned int) () from /home/calvaris/gnome/jhbuild/build/install/lib/libwebkit2gtk-4.0.so.37
No symbol table info available.
#19 0x00007f219e160327 in _gtk_marshal_BOOLEAN__OBJECT_INT_INT_UINT (closure=0x55dc8e310580, return_value=0x7fff48e5cfd0, n_param_values=<optimized out>, param_values=0x7fff48e5d080, 
    invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:809
        cc = 0x55dc8e310580
        data1 = 0x55dc8fc4ae20
        data2 = <optimized out>
        callback = 0x7f219a132b80 <webkitWebViewBaseDragMotion(_GtkWidget*, _GdkDragContext*, int, int, unsigned int)>
        v_return = <optimized out>
        __func__ = "_gtk_marshal_BOOLEAN__OBJECT_INT_INT_UINT"
#20 0x00007f219eb56755 in g_closure_invoke (closure=closure@entry=0x55dc8e310580, return_value=return_value@entry=0x7fff48e5cfd0, n_param_values=5, param_values=param_values@entry=0x7fff48e5d080, 
    invocation_hint=invocation_hint@entry=0x7fff48e5d020) at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gclosure.c:804
        marshal = <optimized out>
        marshal_data = <optimized out>
        in_marshal = 0
        real_closure = 0x55dc8e310560
        __func__ = "g_closure_invoke"
#21 0x00007f219eb6952d in signal_emit_unlocked_R (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x55dc8fc4ae20, emission_return=emission_return@entry=0x7fff48e5d1b0, 
    instance_and_params=instance_and_params@entry=0x7fff48e5d080) at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3673
        accumulator = 0x55dc8e310990
        emission = {next = 0x0, instance = 0x55dc8fc4ae20, ihint = {signal_id = 90, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 94405767569696}
        handler_list = <optimized out>
        return_accu = 0x7fff48e5cfd0
        accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, 
              v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 90
        max_sequential_handler_number = 29485
        return_value_altered = 0
#22 0x00007f219eb71a18 in g_signal_emit_valist (instance=instance@entry=0x55dc8fc4ae20, signal_id=signal_id@entry=90, detail=detail@entry=0, var_args=var_args@entry=0x7fff48e5d2a0)
    at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3401
        return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, 
              v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        error = 0x0
        rtype = 20
        static_scope = 0
        instance_and_params = 0x7fff48e5d080
        signal_return_type = <optimized out>
        param_values = 0x7fff48e5d098
        i = <optimized out>
        n_params = <optimized out>
        __func__ = "g_signal_emit_valist"
#23 0x00007f219eb72808 in g_signal_emit_by_name (instance=instance@entry=0x55dc8fc4ae20, detailed_signal=detailed_signal@entry=0x7f219e324029 "drag-motion")
    at /home/calvaris/gnome/jhbuild/build/src/glib/gobject/gsignal.c:3487
        var_args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fff48e5d3b0, reg_save_area = 0x7fff48e5d2c0}}
        detail = 0
        itype = 94405767569696
        __func__ = "g_signal_emit_by_name"
#24 0x00007f219e2ce624 in gtk_drag_dest_motion (widget=0x55dc8fc4ae20, context=0x55dc8e5f6cc0, x=469, y=794, time=7055131) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gtk/gtkdnd.c:1564
---Type <return> to continue, or q <return> to quit---
        site = 0x55dc8fcc44d0
        action = <optimized out>
        retval = -1640498656
        __func__ = "gtk_drag_dest_motion"
#25 0x00007f219e2cecd0 in gtk_drag_find_widget (callback=0x7f219e2ce500 <gtk_drag_dest_motion>, time=7055131, y=<optimized out>, x=<optimized out>, info=0x7f208c02ae00, context=0x55dc8e5f6cc0, 
    widget=0x55dc8fc4ae20) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gtk/gtkdnd.c:1262
        parent = 0x0
        hierarchy = 0x55dc8e469b00
        found = 0
#26 _gtk_drag_dest_handle_event (toplevel=toplevel@entry=0x55dc8e5143a0, event=event@entry=0x55dc8e7255b0) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gtk/gtkdnd.c:1083
        window = <optimized out>
        tx = 0
        ty = 27
        info = 0x7f208c02ae00
        context = 0x55dc8e5f6cc0
        __func__ = "_gtk_drag_dest_handle_event"
#27 0x00007f219e15e51c in gtk_main_do_event (event=0x55dc8e7255b0) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gtk/gtkmain.c:1919
        event_widget = 0x55dc8e5143a0
        grab_widget = 0x55dc8e5143a0
        topmost_widget = <optimized out>
        window_group = 0x55dc8e3818e0
        rewritten_event = <optimized out>
        device = 0x55dc8e2fb000
        tmp_list = <optimized out>
        __func__ = "gtk_main_do_event"
#28 0x00007f219d0f23b5 in _gdk_event_emit (event=event@entry=0x55dc8e7255b0) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gdk/gdkevents.c:73
No locals.
#29 0x00007f219d1224c2 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /home/calvaris/gnome/jhbuild/build/src/gtk+-3/gdk/x11/gdkeventsource.c:367
        display = <optimized out>
        event = 0x55dc8e7255b0
#30 0x00007f219e87c797 in g_main_dispatch (context=0x55dc8e300ef0) at /home/calvaris/gnome/jhbuild/build/src/glib/glib/gmain.c:3148
        dispatch = 0x7f219d1224a0 <gdk_event_source_dispatch>
        prev_source = 0x0
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = <optimized out>
        cb_data = <optimized out>
        need_destroy = <optimized out>
        source = 0x55dc8e2fa000
        current = 0x55dc8e3e4e80
        i = 0
#31 g_main_context_dispatch (context=context@entry=0x55dc8e300ef0) at /home/calvaris/gnome/jhbuild/build/src/glib/glib/gmain.c:3813
No locals.
#32 0x00007f219e87c9d8 in g_main_context_iterate (context=context@entry=0x55dc8e300ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at /home/calvaris/gnome/jhbuild/build/src/glib/glib/gmain.c:3886
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = 4
        allocated_nfds = 4
---Type <return> to continue, or q <return> to quit---
        fds = <optimized out>
#33 0x00007f219e87ca7c in g_main_context_iteration (context=context@entry=0x55dc8e300ef0, may_block=may_block@entry=1) at /home/calvaris/gnome/jhbuild/build/src/glib/glib/gmain.c:3947
        retval = <optimized out>
#34 0x00007f219ee3ec7d in g_application_run (application=0x55dc8e512160, argc=<optimized out>, argv=0x7fff48e5d7c8) at /home/calvaris/gnome/jhbuild/build/src/glib/gio/gapplication.c:2401
        arguments = 0x55dc8e3b6440
        status = 0
        context = 0x55dc8e300ef0
        acquired_context = <optimized out>
        __func__ = "g_application_run"
#35 0x000055dc8caadb1d in main (argc=<optimized out>, argv=<optimized out>) at ../../../src/epiphany/src/ephy-main.c:432
        option_context = <optimized out>
        option_group = <optimized out>
        error = 0x0
        arbitrary_url = <optimized out>
        ctx = <optimized out>
        startup_flags = <optimized out>
        mode = <optimized out>
        status = <optimized out>
        flags = <optimized out>
        desktop_info = <optimized out>
Comment 11 Xabier Rodríguez Calvar 2017-08-08 02:49:12 PDT
To reproduce it I use the Wunderlist website and try to drag a task from one list to another.
Comment 12 Carlos Garcia Campos 2017-08-10 01:08:43 PDT
Created attachment 317794 [details]
Patch

Calvaris, could you try this patch, please?
Comment 13 Xabier Rodríguez Calvar 2017-08-10 01:47:11 PDT
Comment on attachment 317794 [details]
Patch

Patch works
Comment 14 Carlos Garcia Campos 2017-08-10 04:02:43 PDT
Committed r220525: <http://trac.webkit.org/changeset/220525>