Bug 214007 - [GTK][MiniBrowser] occasional crashes when closing while download in progress
Summary: [GTK][MiniBrowser] occasional crashes when closing while download in progress
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Linux
: P2 Normal
Assignee: Yury Semikhatsky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-07-06 14:03 PDT by Yury Semikhatsky
Modified: 2020-07-07 00:21 PDT (History)
4 users (show)

See Also:


Attachments
Patch (1.53 KB, patch)
2020-07-06 14:08 PDT, Yury Semikhatsky
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yury Semikhatsky 2020-07-06 14:03:52 PDT
#0  0x00007f4072b28e4d in g_type_check_instance () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libgobject-2.0.so.0
#1  0x00007f4072b1ca34 in g_signal_handlers_disconnect_matched () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libgobject-2.0.so.0
#2  0x000056033590193b in ?? ()
#3  0x00007f4072b01c2d in g_closure_invoke () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libgobject-2.0.so.0
#4  0x00007f4072b1562e in ?? () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libgobject-2.0.so.0
#5  0x00007f4072b1dfe5 in g_signal_emit_valist () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libgobject-2.0.so.0
#6  0x00007f4072b1e9ff in g_signal_emit () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libgobject-2.0.so.0
#7  0x00007f4076edaafb in webkitDownloadFailed(_WebKitDownload*, WebCore::ResourceError const&) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#8  0x00007f4076edb9fe in webkitDownloadCancelled(_WebKitDownload*) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#9  0x00007f4076edc1e9 in DownloadClient::didCancel(WebKit::DownloadProxy&) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#10 0x00007f4076f614b5 in WebKit::DownloadProxy::didCancel(IPC::DataReference const&) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#11 0x00007f4076b014e1 in WebKit::DownloadProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#12 0x00007f4076d0b5f8 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#13 0x00007f4076f74fbf in non-virtual thunk to WebKit::NetworkProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#14 0x00007f4076d03f90 in IPC::Connection::dispatchMessage(IPC::Decoder&) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#15 0x00007f4076d05d25 in IPC::Connection::dispatchMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >) () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#16 0x00007f4076d064cf in IPC::Connection::dispatchOneIncomingMessage() () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libwebkit2gtk-4.0.so.37
#17 0x00007f4074940df5 in WTF::RunLoop::performWork() () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libjavascriptcoregtk-4.0.so.18
#18 0x00007f40749a9b09 in ?? () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libjavascriptcoregtk-4.0.so.18
#19 0x00007f407ab639e5 in g_main_context_dispatch () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libglib-2.0.so.0
#20 0x00007f407ab63db0 in ?? () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libglib-2.0.so.0
#21 0x00007f407ab63e3c in g_main_context_iteration () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libglib-2.0.so.0
#22 0x00007f4072e1069d in g_application_run () from /home/yurys/.cache/ms-playwright/webkit-1301/minibrowser-gtk/libgio-2.0.so.0
#23 0x00005603358ff76f in ?? ()
#24 0x00007f4071b30b97 in __libc_start_main (main=0x5603358ff320, argc=3, argv=0x7ffd6d806508, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd6d8064f8) at ../csu/libc-start.c:310
#25 0x00005603358ff81a in ?? ()
Comment 1 Yury Semikhatsky 2020-07-06 14:08:25 PDT
Created attachment 403618 [details]
Patch
Comment 2 Philippe Normand 2020-07-06 14:13:00 PDT
Maybe g_signal_handler_block() could be an option?
Comment 3 Yury Semikhatsky 2020-07-06 15:29:36 PDT
IIUC g_signal_handler_block assumes there will be g_signal_handler_unblock at some point in the future. In this case UI item representing the download is destroyed hence the signal handlers it added make no sense anymore and there is no point in unblocking them. Also they would still keep a dangling pointer.
Comment 4 EWS 2020-07-07 00:21:21 PDT
Committed r264011: <https://trac.webkit.org/changeset/264011>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403618 [details].