Issue metadata
Sign in to add a comment
|
Crash due to null HostResolver in ResourceContext when network service is enabled
Reported by
pranjali...@etouch.net,
Jun 18 2018
|
||||||||||||||||||||||||
Issue descriptionChrome version : 69.0.3464.0 (Official Build) Revision 3c26b60e3842fee660bcff5eb35aa0587d795f02-refs/branch-heads/3464@{#1}(32/64-bit) OS : Win(7,10) OS Precondition: Enable 'Enable network service' flag from 'chrome://flags'. Steps to reproduce: 1. Launch chrome and navigate to 'https://www.flipkart.com'. 2. Add any item into cart(i.e 'go to cart') and click on 'place order' . 3.Wait and observe. Actual Result: Browser crash is seen after clicking on 'place order' button on flipkart.com Expected Result: Browser should not get crashed after after clicking on 'place order' button on flipkart.com Crash ID: Uploaded Crash Report ID 448ad8269991c3e3 (Local Crash ID: b5b47194-9752-40d4-a979-951eb8795bac) This is a regression issue broken in ‘M-69’ and will soon update other bisect info. Good build: 69.0.3462.0 Bad build: 69.0.3463.0 Unable to provide bisect using hasbisect-per-revision, hence providing bisect using Chromium builds. Narrow bisect URL : https://chromium.googlesource.com/chromium/src/+log/e7652b9e1dbc2a95964864161283f4b8665154f3..ad910ae2f13f930e5db7dcb7a28fc1ab215513eb Suspecting : https://chromium.googlesource.com/chromium/src/+/f34bba7c38758baf556aef6649fdd97f1b8a41a9 @Matt Menke: Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner. Just to add some information: Did this work with Enable network service flag disable? Yes Thank You! ⛆ |
|
|
,
Jun 18 2018
Please find the stack trace for the crash id: --------------------------------------------- Thread 3 (id: 0x1ac4) CRASHED [EXCEPTION_ACCESS_VIOLATION_READ @ 0x00000000 ] MAGIC SIGNATURE THREAD Stack Quality100%Show frame trust levels 0x00007fff91880be8 (chrome.dll -socket_dispatcher_host.cc:82 ) content::P2PSocketDispatcherHost::DnsRequest::Resolve(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,base::RepeatingCallback<void > const &) 0x00007fff9187f4cb (chrome.dll -socket_dispatcher_host.cc:247 ) content::P2PSocketDispatcherHost::OnGetHostAddress(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,int) 0x00007fff9187f2ee (chrome.dll -ipc_message_templates.h:146 ) IPC::MessageT<P2PHostMsg_GetHostAddress_Meta,std::tuple<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int>,void>::Dispatch<content::P2PSocketDispatcherHost,content::P2PSocketDispatcherHost,void,void (content::P2PSocketDispatcherHost::*)(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &, int)> 0x00007fff9187ee4b (chrome.dll -socket_dispatcher_host.cc:156 ) content::P2PSocketDispatcherHost::OnMessageReceived(IPC::Message const &) 0x00007fff90e288ae (chrome.dll -browser_message_filter.cc:73 ) content::BrowserMessageFilter::Internal::OnMessageReceived(IPC::Message const &) 0x00007fff92143270 (chrome.dll -message_filter_router.cc:22 ) IPC::`anonymous namespace'::TryFiltersImpl 0x00007fff910aeab4 (chrome.dll -ipc_channel_proxy.cc:86 ) IPC::ChannelProxy::Context::TryFilters(IPC::Message const &) 0x00007fff910aea6a (chrome.dll -ipc_channel_proxy.cc:121 ) IPC::ChannelProxy::Context::OnMessageReceived(IPC::Message const &) 0x00007fff90e28541 (chrome.dll -ipc_channel_mojo.cc:263 ) IPC::ChannelMojo::OnMessageReceived(IPC::Message const &) 0x00007fff921430a9 (chrome.dll -ipc_message_pipe_reader.cc:113 ) IPC::internal::MessagePipeReader::Receive(base::span<unsigned char const ,-1>,base::Optional<std::vector<mojo::StructPtr<mojo::native::SerializedHandle>,std::allocator<mojo::StructPtr<mojo::native::SerializedHandle> > > >) 0x00007fff90e26954 (chrome.dll -ipc.mojom.cc:274 ) IPC::mojom::ChannelStubDispatch::Accept(IPC::mojom::Channel *,mojo::Message *) 0x00007fff9214028f (chrome.dll -ipc_mojo_bootstrap.cc:828 ) IPC::`anonymous namespace'::ChannelAssociatedGroupController::Accept 0x00007fff90bd7ced (chrome.dll -connector.cc:442 ) mojo::Connector::ReadSingleMessage(unsigned int *) 0x00007fff90bd7b69 (chrome.dll -connector.cc:472 ) mojo::Connector::ReadAllAvailableMessages() 0x00007fff90bd7a54 (chrome.dll -simple_watcher.cc:274 ) mojo::SimpleWatcher::OnHandleReady(int,unsigned int,mojo::HandleSignalsState const &) 0x00007fff90b200d4 (chrome.dll -task_annotator.cc:101 ) base::debug::TaskAnnotator::RunTask(char const *,base::PendingTask *) 0x00007fff90b1fbab (chrome.dll -message_loop.cc:319 ) base::MessageLoop::RunTask(base::PendingTask *) 0x00007fff90b1f5f7 (chrome.dll -message_loop.cc:373 ) base::MessageLoop::DoWork() 0x00007fff90b641d9 (chrome.dll -message_pump_win.cc:478 ) base::MessagePumpForIO::DoRunLoop() 0x00007fff90b64067 (chrome.dll -message_pump_win.cc:56 ) base::MessagePumpWin::Run(base::MessagePump::Delegate *) 0x00007fff90b1f150 (chrome.dll -run_loop.cc:102 ) base::RunLoop::Run() 0x00007fff90b63fd7 (chrome.dll -browser_process_sub_thread.cc:178 ) content::BrowserProcessSubThread::IOThreadRun(base::RunLoop *) 0x00007fff90b1daef (chrome.dll -thread.cc:337 ) base::Thread::ThreadMain() 0x00007fff91c2e413 (chrome.dll -platform_thread_win.cc:91 ) base::`anonymous namespace'::ThreadFunc 0x00007fffc5391fe3 (KERNEL32.dll + 0x00011fe3 ) BaseThreadInitThunk 0x00007fffc6efcb30 (ntdll.dll + 0x0006cb30 ) RtlUserThreadStart
,
Jun 18 2018
,
Jun 18 2018
,
Jun 19 2018
,
Jun 19 2018
As I understand the issue: P2PSocketDispatcherHost is accessing ResourceContext to use HostResolver when network service is enabled. That's blocked when network service is enabled because such code should then go through network service. Not an actual issue yet as network service won't actually be enabled until we fix stuff like this. Proper fix is to migrate P2PSocketDispatcherHost to do its host resolution via NetworkContext::ResolveHost once that method exists and supports the needs of this code. I'm already working on implementing that, and I'll make sure to migrate this code once it's ready.
,
Jun 21 2018
Just visiting "Aliexpress.com" results in this crash.
,
Jun 21 2018
,
Jul 12
,
Jul 12
,
Jul 12
I'm hitting this a lot myself. We shouldn't crash in this case until the HostResolver is out of process; we should use the in-process one so that canary is usable.
,
Jul 12
I'll bring back the HostResolver in the meantime and then once the mojo api is ready we'll convert this.
,
Jul 12
The issue is it's using the ResourceContext, which has been deprecated for 6 (??) years. There are in fact plenty of in-process host resolvers it could be using, there's just not a ResourceContext. I'd suggest moving it over to getting a HostResolver from a URLRequestContext, instead of continuing to use the ResourceContext. Or just wait a week or two - we're not that far away from having a HostResolver mojo interface, at least.
,
Jul 12
@Matt; currently with network service, even URLRequestContext's don't have a HostResolver set up. When the mojo api is ready, it'll be easy to use cs/ and revert the cl. but in the meantime, having canary crash often (I'm hitting this on many websites) is adding noise to testers and making it hard to dogfood this.
,
Jul 12
btw I can also change that specific code to use the HostResolver from a URLRequestContext, provided it's non null, and that would avoid using the deprecated RC.
,
Jul 12
They do - they are creating using URLRequestContextBuilder, so just get a default one.
,
Jul 12
They are created, rather.
,
Jul 12
ahh, thanks I thought the removal of the following line
" builder.set_shared_host_resolver(
io_thread_globals->deprecated_host_resolver.get());"
meant there was no hostresolver, I didn't realize the builder created a default one.
,
Jul 12
,
Jul 12
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ed5e651e10cd158bf786b33c0dcd77d714244d2e commit ed5e651e10cd158bf786b33c0dcd77d714244d2e Author: John Abd-El-Malek <jam@chromium.org> Date: Thu Jul 12 20:32:33 2018 Stop using ResourceContext::GetHostResolver(). ResourceContext is deprecated, and after r567879 it returns nullptr when network service is enabled. Instead get the HostResolver from the URLRequestContext. Also remove ResourceContext::GetHostResolver() as it's no longer used. Bug: 853696 Change-Id: Ic09dac09f14e4aaf0e20dd990246cc51ae35e933 Reviewed-on: https://chromium-review.googlesource.com/1135366 Reviewed-by: Matt Menke <mmenke@chromium.org> Commit-Queue: John Abd-El-Malek <jam@chromium.org> Cr-Commit-Position: refs/heads/master@{#574706} [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/android_webview/browser/aw_resource_context.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/android_webview/browser/aw_resource_context.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/chrome/browser/profiles/profile_io_data.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/chrome/browser/profiles/profile_io_data.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/chromecast/browser/cast_browser_context.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/browser/renderer_host/p2p/socket_dispatcher_host.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/browser/renderer_host/p2p/socket_dispatcher_host.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/browser/renderer_host/pepper/pepper_host_resolver_message_filter.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/browser/renderer_host/pepper/pepper_host_resolver_message_filter.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/public/browser/resource_context.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/public/test/mock_resource_context.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/public/test/mock_resource_context.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/shell/browser/shell_browser_context.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/shell/browser/shell_browser_context.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/shell/browser/shell_url_request_context_getter.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/content/shell/browser/shell_url_request_context_getter.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/extensions/browser/api/dns/dns_api.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/extensions/browser/api/dns/dns_api.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/extensions/browser/api/dns/host_resolver_wrapper.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/extensions/browser/api/dns/host_resolver_wrapper.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/extensions/browser/api/socket/socket_api.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/extensions/browser/api/socket/socket_api.h [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/headless/lib/browser/headless_browser_context_impl.cc [modify] https://crrev.com/ed5e651e10cd158bf786b33c0dcd77d714244d2e/webrunner/browser/webrunner_browser_context.cc
,
Jul 12
,
Jul 16
Update: Rechecked the above issue on Win(7,10) OS using latest canary build #69.0.3493.0 and issue is fixed. Browser does not gets crashed after clicking on 'place order' button on flipkart.com. Please find below attached screencast for reference. Thank You... |
||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by mmenke@chromium.org
, Jun 18 2018Components: -Blink Internals>Services>Network
Labels: -Type-Bug-Regression Proj-Servicification-Canary Type-Bug
Owner: ----
Status: Available (was: Assigned)