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

Issue 1774853003: Revert of Trace FrameTreeNode Snapshots (Closed)

Created:
4 years, 9 months ago by benwells
Modified:
4 years, 9 months ago
Reviewers:
clamy, benjhayden, Sami, nasko
CC:
carlosk, chromium-reviews, creis+watch_chromium.org, Charlie Harrison, darin-cc_chromium.org, jam, lpy, nasko+codewatch_chromium.org, nduca
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Revert of Trace FrameTreeNode Snapshots (patchset #25 id:560001 of https://codereview.chromium.org/1390053002/ ) Reason for revert: This has caused errors on the Linux TSAN bot. First failing build: https://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20TSan%20Tests/builds/17851 Sample output: WARNING: ThreadSanitizer: data race (pid=29730) Read of size 8 at 0x7d540000f890 by thread T8: #0 get buildtools/third_party/libc++/trunk/include/memory:2714:69 (content_browsertests+0x000004cdffbd) #1 content::RenderProcessHostImpl::GetHandle() const content/browser/renderer_host/render_process_host_impl.cc:1648 (content_browsertests+0x000004cdffbd) #2 content::TracedFrameTreeNode::TracedFrameTreeNode(content::FrameTreeNode const&) content/browser/frame_host/traced_frame_tree_node.cc:32:5 (content_browsertests+0x000004c132f1) #3 content::FrameTreeNode::TraceSnapshot() const content/browser/frame_host/frame_tree_node.cc:470:3 (content_browsertests+0x000004bd3804) #4 content::FrameTreeNode::OnTraceLogEnabled() content/browser/frame_host/frame_tree_node.cc:466:3 (content_browsertests+0x000004bd5cf9) #5 base::trace_event::TraceLog::SetEnabled(base::trace_event::TraceConfig const&, base::trace_event::TraceLog::Mode) base/trace_event/trace_log.cc:638:5 (content_browsertests+0x000001085fad) #6 content::TracingControllerImpl::SetEnabledOnFileThread(base::trace_event::TraceConfig const&, int, base::Callback<void ()> const&) content/browser/tracing/tracing_controller_impl.cc:211:3 (content_browsertests+0x000004dca941) #7 Run<const base::trace_event::TraceConfig &, const base::trace_event::TraceLog::Mode &, const base::Callback<void ()> &> base/bind_internal.h:181:12 (content_browsertests+0x000004dd1b60) #8 MakeItSo<content::TracingControllerImpl *, const base::trace_event::TraceConfig &, const base::trace_event::TraceLog::Mode &, const base::Callback<void ()> &> base/bind_internal.h:301 (content_browsertests+0x000004dd1b60) #9 base::internal::Invoker<base::IndexSequence<0ul, 1ul, 2ul, 3ul>, base::internal::BindState<base::internal::RunnableAdapter<void (content::TracingControllerImpl::*)(base::trace_event::TraceConfig const&, int, base::Callback<void ()> const&)>, void (content::TracingControllerImpl*, base::trace_event::TraceConfig const&, int, base::Callback<void ()> const&), base::internal::UnretainedWrapper<content::TracingControllerImpl>, base::trace_event::TraceConfig const&, base::trace_event::TraceLog::Mode, base::Callback<void ()>&>, base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (content::TracingControllerImpl::*)(base::trace_event::TraceConfig const&, int, base::Callback<void ()> const&)> >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:351 (content_browsertests+0x000004dd1b60) #10 Run base/callback.h:394:12 (content_browsertests+0x000001093cbd) #11 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask const&) base/debug/task_annotator.cc:51 (content_browsertests+0x000001093cbd) #12 base::MessageLoop::RunTask(base::PendingTask const&) base/message_loop/message_loop.cc:476:3 (content_browsertests+0x000001014762) #13 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask const&) base/message_loop/message_loop.cc:485:5 (content_browsertests+0x000001014cfd) #14 base::MessageLoop::DoWork() base/message_loop/message_loop.cc:597:13 (content_browsertests+0x0000010150e5) #15 base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_libevent.cc:229:21 (content_browsertests+0x000000feeac0) #16 base::MessageLoop::RunHandler() base/message_loop/message_loop.cc:440:3 (content_browsertests+0x00000101415b) #17 base::RunLoop::Run() base/run_loop.cc:35:3 (content_browsertests+0x0000010308f6) #18 base::MessageLoop::Run() base/message_loop/message_loop.cc:293:3 (content_browsertests+0x0000010139a5) #19 base::Thread::Run(base::MessageLoop*) base/threading/thread.cc:202:3 (content_browsertests+0x000001059239) #20 content::BrowserThreadImpl::FileThreadRun(base::MessageLoop*) content/browser/browser_thread_impl.cc:188:3 (content_browsertests+0x000004b7227e) #21 content::BrowserThreadImpl::Run(base::MessageLoop*) content/browser/browser_thread_impl.cc:243:14 (content_browsertests+0x000004b7281a) #22 base::Thread::ThreadMain() base/threading/thread.cc:254:3 (content_browsertests+0x000001059409) #23 base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:68:3 (content_browsertests+0x0000010537dd) ......... Original issue's description: > Trace FrameTreeNode Snapshots > > This will provide a single ground-truth for frame structure in tracing. > > FrameTreeNodes are snapshot when they are created or destroyed, > when tracing starts, and when a frame's url changes. > Each snapshot contains the frame's url, > a reference to its parent (unless it's a root), > and a cross-process scoped reference to the current RenderFrame. > > The snapshots are traced at their frame_tree_node_id, not their memory address. > The RenderFrames are traced at their routing_ids, not their memory address, > so that FrameTreeNodes can use cross-process references to them. > > Pending and speculative RenderFrames are not supported. If a specific > use case is found for them, then cross-process scoped references > will be added to TracedFrameTreeNode for them. > The RenderFrame references will allow correlating frame tree structure > and FrameTreeNode objects with LocalFrame Trace Contexts. > > The data for each FrameTreeNode is copied to a TracedFrameTreeNode when the > snapshot is recorded, not when the trace is dumped to JSON, because the > underlying FrameTree might change between when the snapshot is recorded > and when the trace is dumped to JSON. > > RenderFrames and FrameTreeNodes are snapshot when they are created > so that there's always a snapshot for the tracing model to find when > it patches up the references. > > The catapult side of this change is https://codereview.chromium.org/1736373002 > > The RenderFrame object snapshots that are referenced by the FrameTreeNode snapshots > are in Sami's Frameblamr CL: > https://codereview.chromium.org/1447563002/ > > BUG=537802 > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation > > Committed: https://crrev.com/ff37bf3297e8cbe14c6a865e528673f0814c7da1 > Cr-Commit-Position: refs/heads/master@{#379623} TBR=clamy@chromium.org,nasko@chromium.org,skyostil@chromium.org,benjhayden@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=537802 Committed: https://crrev.com/9f3523503d166f80c6bb77061378b4e2a7ee4827 Cr-Commit-Position: refs/heads/master@{#379742}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+2 lines, -149 lines) Patch
M content/browser/frame_host/frame_tree_node.h View 3 chunks +2 lines, -9 lines 0 comments Download
M content/browser/frame_host/frame_tree_node.cc View 6 chunks +0 lines, -26 lines 0 comments Download
D content/browser/frame_host/traced_frame_tree_node.h View 1 chunk +0 lines, -36 lines 0 comments Download
D content/browser/frame_host/traced_frame_tree_node.cc View 1 chunk +0 lines, -76 lines 0 comments Download
M content/content_browser.gypi View 1 chunk +0 lines, -2 lines 0 comments Download

Messages

Total messages: 6 (2 generated)
benwells
Created Revert of Trace FrameTreeNode Snapshots
4 years, 9 months ago (2016-03-08 04:42:11 UTC) #1
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1774853003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1774853003/1
4 years, 9 months ago (2016-03-08 04:42:31 UTC) #2
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 9 months ago (2016-03-08 04:43:12 UTC) #4
commit-bot: I haz the power
4 years, 9 months ago (2016-03-08 04:45:21 UTC) #6
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/9f3523503d166f80c6bb77061378b4e2a7ee4827
Cr-Commit-Position: refs/heads/master@{#379742}

Powered by Google App Engine
This is Rietveld 408576698