Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(615)

Issue 1412333002: Revert of Properly recreate swapped out RenderView. (Closed)

Created:
5 years, 2 months ago by Reilly Grant (use Gerrit)
Modified:
5 years, 2 months ago
Reviewers:
Charlie Reis, alexmos, nasko
CC:
chromium-reviews, jam, nasko+codewatch_chromium.org, creis+watch_chromium.org, darin-cc_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Revert of Properly recreate swapped out RenderView. (patchset #6 id:100001 of https://codereview.chromium.org/1408743005/ ) Reason for revert: This appears to be causing a set of two memory leaks on the Webkit Linux Valgrind bots: 22,008 (48 direct, 21,960 indirect) bytes in 1 blocks are definitely lost in loss record 2,955 of 2,972 operator new(unsigned long) (m_replacemalloc/vg_replace_malloc.c:1140) content::RenderProcessHostImpl::Init() (content/browser/renderer_host/render_process_host_impl.cc:710) content::RenderFrameHostManager::InitRenderView(content::RenderViewHostImpl*, content::RenderFrameProxyHost*) (content/browser/frame_host/render_frame_host_manager.cc:1995) content::RenderFrameHostManager::Navigate(GURL const&, content::FrameNavigationEntry const&, content::NavigationEntryImpl const&) (content/browser/frame_host/render_frame_host_manager.cc:421) content::NavigatorImpl::NavigateToEntry(content::FrameTreeNode*, content::FrameNavigationEntry const&, content::NavigationEntryImpl const&, content::NavigationController::ReloadType, bool) (content/browser/frame_host/navigator_impl.cc:312) content::NavigatorImpl::NavigateToPendingEntry(content::FrameTreeNode*, content::FrameNavigationEntry const&, content::NavigationController::ReloadType, bool) (/b/build/slave/webkit-rel-linux-valgrind-layout/build/src/out/Release/content_shell) content::NavigationControllerImpl::NavigateToPendingEntryInternal(content::NavigationController::ReloadType) (content/browser/frame_host/navigation_controller_impl.cc:1785) content::NavigationControllerImpl::NavigateToPendingEntry(content::NavigationController::ReloadType) (content/browser/frame_host/navigation_controller_impl.cc:1762) content::NavigationControllerImpl::LoadEntry(scoped_ptr<content::NavigationEntryImpl, base::DefaultDeleter<content::NavigationEntryImpl> >) (content/browser/frame_host/navigation_controller_impl.cc:430) content::NavigationControllerImpl::LoadURLWithParams(content::NavigationController::LoadURLParams const&) (content/browser/frame_host/navigation_controller_impl.cc:795) content::Shell::LoadURLForFrame(GURL const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (content/shell/browser/shell.cc:190) content::Shell::LoadURL(GURL const&) (content/shell/browser/shell.cc:182) content::BlinkTestController::PrepareForLayoutTest(GURL const&, base::FilePath const&, bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (content/shell/browser/blink_test_controller.cc:274) (anonymous namespace)::RunOneTest(test_runner::TestInfo const&, bool*, scoped_ptr<content::BrowserMainRunner, base::DefaultDeleter<content::BrowserMainRunner> > const&) (content/shell/browser/layout_test/layout_test_browser_main.cc:40) (anonymous namespace)::RunTests(scoped_ptr<content::BrowserMainRunner, base::DefaultDeleter<content::BrowserMainRunner> > const&) (content/shell/browser/layout_test/layout_test_browser_main.cc:87) LayoutTestBrowserMain(content::MainFunctionParams const&, scoped_ptr<content::BrowserMainRunner, base::DefaultDeleter<content::BrowserMainRunner> > const&) (content/shell/browser/layout_test/layout_test_browser_main.cc:141) content::ShellMainDelegate::RunProcess(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, content::MainFunctionParams const&) (content/shell/app/shell_main_delegate.cc:271) content::RunNamedProcessTypeMain(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) (content/app/content_main_runner.cc:365) content::ContentMainRunnerImpl::Run() (content/app/content_main_runner.cc:798) content::ContentMain(content::ContentMainParams const&) (content/app/content_main.cc:19) 48 (40 direct, 8 indirect) bytes in 1 blocks are definitely lost in loss record 1,603 of 2,979 operator new(unsigned long) (m_replacemalloc/vg_replace_malloc.c:1140) content::PushMessagingMessageFilter::PushMessagingMessageFilter(int, content::ServiceWorkerContextWrapper*) (content/browser/push_messaging/push_messaging_message_filter.cc:213) content::RenderProcessHostImpl::CreateMessageFilters() (content/browser/renderer_host/render_process_host_impl.cc:939) content::RenderProcessHostImpl::Init() (content/browser/renderer_host/render_process_host_impl.cc:661) content::RenderFrameHostManager::InitRenderView(content::RenderViewHostImpl*, content::RenderFrameProxyHost*) (content/browser/frame_host/render_frame_host_manager.cc:1995) content::RenderFrameHostManager::Navigate(GURL const&, content::FrameNavigationEntry const&, content::NavigationEntryImpl const&) (content/browser/frame_host/render_frame_host_manager.cc:421) content::NavigatorImpl::NavigateToEntry(content::FrameTreeNode*, content::FrameNavigationEntry const&, content::NavigationEntryImpl const&, content::NavigationController::ReloadType, bool) (content/browser/frame_host/navigator_impl.cc:312) content::NavigatorImpl::NavigateToPendingEntry(content::FrameTreeNode*, content::FrameNavigationEntry const&, content::NavigationController::ReloadType, bool) (/b/build/slave/webkit-rel-linux-valgrind-layout/build/src/out/Release/content_shell) content::NavigationControllerImpl::NavigateToPendingEntryInternal(content::NavigationController::ReloadType) (content/browser/frame_host/navigation_controller_impl.cc:1785) content::NavigationControllerImpl::NavigateToPendingEntry(content::NavigationController::ReloadType) (content/browser/frame_host/navigation_controller_impl.cc:1762) content::NavigationControllerImpl::LoadEntry(scoped_ptr<content::NavigationEntryImpl, base::DefaultDeleter<content::NavigationEntryImpl> >) (content/browser/frame_host/navigation_controller_impl.cc:430) content::NavigationControllerImpl::LoadURLWithParams(content::NavigationController::LoadURLParams const&) (content/browser/frame_host/navigation_controller_impl.cc:795) content::Shell::LoadURLForFrame(GURL const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (content/shell/browser/shell.cc:190) content::Shell::LoadURL(GURL const&) (content/shell/browser/shell.cc:182) content::BlinkTestController::PrepareForLayoutTest(GURL const&, base::FilePath const&, bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (content/shell/browser/blink_test_controller.cc:274) (anonymous namespace)::RunOneTest(test_runner::TestInfo const&, bool*, scoped_ptr<content::BrowserMainRunner, base::DefaultDeleter<content::BrowserMainRunner> > const&) (content/shell/browser/layout_test/layout_test_browser_main.cc:40) (anonymous namespace)::RunTests(scoped_ptr<content::BrowserMainRunner, base::DefaultDeleter<content::BrowserMainRunner> > const&) (content/shell/browser/layout_test/layout_test_browser_main.cc:87) LayoutTestBrowserMain(content::MainFunctionParams const&, scoped_ptr<content::BrowserMainRunner, base::DefaultDeleter<content::BrowserMainRunner> > const&) (content/shell/browser/layout_test/layout_test_browser_main.cc:141) content::ShellMainDelegate::RunProcess(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, content::MainFunctionParams const&) (content/shell/app/shell_main_delegate.cc:271) content::RunNamedProcessTypeMain(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) (content/app/content_main_runner.cc:365) content::ContentMainRunnerImpl::Run() (content/app/content_main_runner.cc:798) content::ContentMain(content::ContentMainParams const&) (content/app/content_main.cc:19) Original issue's description: > Properly recreate swapped out RenderView. > > This CL fixes how RenderView is recreated after a process crash. Due to not recreating the RenderFrameProxy in the case the RenderView is swapped out, the WebView ends up with no mainFrame() and crashes in various ways. > > BUG=357747, 544271 > > Committed: https://crrev.com/ae13c59638df3adf7c9a206f82680faf86d52310 > Cr-Commit-Position: refs/heads/master@{#354658} TBR=creis@chromium.org,alexmos@chromium.org,nasko@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=357747, 544271 Committed: https://crrev.com/5f0b7462c229b8f79e13ab128917c130703627bc Cr-Commit-Position: refs/heads/master@{#354881}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+26 lines, -68 lines) Patch
M content/browser/frame_host/render_frame_host_manager.h View 1 chunk +6 lines, -5 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager.cc View 11 chunks +20 lines, -17 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager_browsertest.cc View 1 chunk +0 lines, -43 lines 0 comments Download
M content/browser/renderer_host/render_view_host_impl.cc View 1 chunk +0 lines, -3 lines 0 comments Download

Messages

Total messages: 19 (9 generated)
Reilly Grant (use Gerrit)
Created Revert of Properly recreate swapped out RenderView.
5 years, 2 months ago (2015-10-19 21:15:21 UTC) #1
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1412333002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1412333002/1
5 years, 2 months ago (2015-10-19 21:16:01 UTC) #3
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 2 months ago (2015-10-19 21:17:52 UTC) #5
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1412333002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1412333002/1
5 years, 2 months ago (2015-10-19 21:29:33 UTC) #10
Reilly Grant (use Gerrit)
This is the first failed run with this patch: http://build.chromium.org/p/chromium.memory.fyi/builders/Webkit%20Linux%20%28valgrind%20layout%29/builds/37082
5 years, 2 months ago (2015-10-19 21:59:04 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1412333002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1412333002/1
5 years, 2 months ago (2015-10-19 21:59:22 UTC) #15
commit-bot: I haz the power
Committed patchset #1 (id:1)
5 years, 2 months ago (2015-10-19 22:01:16 UTC) #16
commit-bot: I haz the power
Patchset 1 (id:??) landed as https://crrev.com/5f0b7462c229b8f79e13ab128917c130703627bc Cr-Commit-Position: refs/heads/master@{#354881}
5 years, 2 months ago (2015-10-19 22:01:54 UTC) #17
nasko
On 2015/10/19 22:01:54, commit-bot: I haz the power wrote: > Patchset 1 (id:??) landed as ...
5 years, 2 months ago (2015-10-19 23:39:14 UTC) #18
Reilly Grant (use Gerrit)
5 years, 2 months ago (2015-10-19 23:45:24 UTC) #19
Message was sent while issue was closed.
On 2015/10/19 23:39:14, nasko (slow to review) wrote:
> On 2015/10/19 22:01:54, commit-bot: I haz the power wrote:
> > Patchset 1 (id:??) landed as
> > https://crrev.com/5f0b7462c229b8f79e13ab128917c130703627bc
> > Cr-Commit-Position: refs/heads/master@{#354881}
> 
> Courtesy ping about this would've been appreciated. The revert of this is
> causing another revert to be necessary, otherwise Canary will see higher
number
> of crashes. 
> 
> In general, for memory leaks I've seen bugs filed, suppression added until the
> underlying issue is fixed. Is there a reason why this process wasn't used this
> time?

I'm just new at this. Feel free to reland and I'll add the necessary
suppressions.

Powered by Google App Engine
This is Rietveld 408576698