Commit aa68215f authored by Clark DuVall's avatar Clark DuVall Committed by Commit Bot

Remove DumpWithoutCrashing used for debugging NS OOP on Android

We should have enough data from this already, so no need to keep it
around.

Bug: 934317, 1033917
Change-Id: Ib3102b7382e47a5e2f4640090c8bfef69d27d6b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1976823
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Auto-Submit: Clark DuVall <cduvall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#727215}
parent 843a9fc2
......@@ -9,7 +9,6 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/debug/alias.h"
#include "base/debug/dump_without_crashing.h"
#include "base/feature_list.h"
#include "base/files/file_path.h"
#include "base/metrics/field_trial_params.h"
......@@ -2445,7 +2444,6 @@ void NavigationRequest::CommitNavigation() {
std::move(subresource_loader_params_->prefetched_signed_exchanges);
}
AddNetworkServiceDebugEvent("COM");
render_frame_host_->CommitNavigation(
this, std::move(common_params), std::move(commit_params),
std::move(response_head), std::move(response_body_),
......@@ -2505,14 +2503,9 @@ void NavigationRequest::RenderProcessHostDestroyed(RenderProcessHost* host) {
ResetExpectedProcess();
}
void NavigationRequest::RenderProcessReady(RenderProcessHost* host) {
AddNetworkServiceDebugEvent("RPR");
}
void NavigationRequest::RenderProcessExited(
RenderProcessHost* host,
const ChildProcessTerminationInfo& info) {
AddNetworkServiceDebugEvent("RPE");
}
void NavigationRequest::UpdateSiteURL(
......@@ -3189,7 +3182,6 @@ void NavigationRequest::DidCommitNavigation(
bool did_replace_entry,
const GURL& previous_url,
NavigationType navigation_type) {
AddNetworkServiceDebugEvent("DCN");
common_params_->url = params.url;
did_replace_entry_ = did_replace_entry;
should_update_history_ = params.should_update_history;
......@@ -3303,9 +3295,6 @@ void NavigationRequest::ReadyToCommitNavigation(bool is_error) {
TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationHandle", this,
"ReadyToCommitNavigation");
AddNetworkServiceDebugEvent(
std::string("RTCN") +
(render_frame_host_->GetProcess()->IsReady() ? "1" : "0"));
state_ = READY_TO_COMMIT;
ready_to_commit_time_ = base::TimeTicks::Now();
RestartCommitTimeout();
......@@ -3349,7 +3338,6 @@ bool NavigationRequest::IsWaitingToCommit() {
}
void NavigationRequest::RenderProcessBlockedStateChanged(bool blocked) {
AddNetworkServiceDebugEvent(std::string("B") + (blocked ? "1" : "0"));
if (blocked)
StopCommitTimeout();
else
......@@ -3385,46 +3373,6 @@ void NavigationRequest::RestartCommitTimeout() {
void NavigationRequest::OnCommitTimeout() {
DCHECK_EQ(READY_TO_COMMIT, state_);
AddNetworkServiceDebugEvent("T");
#if defined(OS_ANDROID)
// Rate limit the number of stack dumps so we don't overwhelm our crash
// reports.
// TODO(http://crbug.com/934317): Remove this once done debugging renderer
// hangs.
if (base::RandDouble() < 0.001) {
static base::debug::CrashKeyString* url_key =
base::debug::AllocateCrashKeyString("commit_timeout_url",
base::debug::CrashKeySize::Size256);
base::debug::ScopedCrashKeyString scoped_url(
url_key, common_params_->url.possibly_invalid_spec());
static base::debug::CrashKeyString* last_crash_key =
base::debug::AllocateCrashKeyString("ns_last_crash_ms",
base::debug::CrashKeySize::Size32);
base::debug::ScopedCrashKeyString scoped_last_crash(
last_crash_key,
base::NumberToString(
GetTimeSinceLastNetworkServiceCrash().InMilliseconds()));
static base::debug::CrashKeyString* memory_key =
base::debug::AllocateCrashKeyString("physical_memory_mb",
base::debug::CrashKeySize::Size32);
base::debug::ScopedCrashKeyString scoped_memory(
memory_key,
base::NumberToString(base::SysInfo::AmountOfPhysicalMemoryMB()));
static base::debug::CrashKeyString* debug_string_key =
base::debug::AllocateCrashKeyString("ns_debug_events",
base::debug::CrashKeySize::Size256);
base::debug::ScopedCrashKeyString scoped_debug_string(
debug_string_key, GetNetworkServiceDebugEventsString());
base::debug::DumpWithoutCrashing();
if (IsOutOfProcessNetworkService())
GetNetworkService()->DumpWithoutCrashing(base::Time::Now());
}
#endif
PingNetworkService(base::BindOnce(
[](base::Time start_time) {
UMA_HISTOGRAM_MEDIUM_TIMES(
......
......@@ -739,7 +739,6 @@ class CONTENT_EXPORT NavigationRequest
bool IsSelfReferentialURL();
// RenderProcessHostObserver implementation.
void RenderProcessReady(RenderProcessHost* host) override;
void RenderProcessExited(RenderProcessHost* host,
const ChildProcessTerminationInfo& info) override;
void RenderProcessHostDestroyed(RenderProcessHost* host) override;
......
......@@ -63,12 +63,6 @@ network::NetworkConnectionTracker* g_network_connection_tracker;
bool g_network_service_is_responding = false;
base::Time g_last_network_service_crash;
std::deque<std::pair<std::string, base::Time>>& GetDebugEvents() {
static base::NoDestructor<std::deque<std::pair<std::string, base::Time>>>
debug_events;
return *debug_events;
}
std::unique_ptr<network::NetworkService>& GetLocalNetworkService() {
static base::NoDestructor<
base::SequenceLocalStorageSlot<std::unique_ptr<network::NetworkService>>>
......@@ -195,7 +189,6 @@ void OnNetworkServiceCrash() {
DCHECK(!g_network_service_remote->is_connected());
g_last_network_service_crash = base::Time::Now();
GetCrashHandlersList().Notify();
AddNetworkServiceDebugEvent("ONSC");
}
// Parses the desired granularity of NetLog capturing specified by the command
......@@ -290,7 +283,6 @@ network::mojom::NetworkService* GetNetworkService() {
}
}
AddNetworkServiceDebugEvent("START");
mojo::PendingRemote<network::mojom::NetworkServiceClient> client_remote;
auto client_receiver = client_remote.InitWithNewPipeAndPassReceiver();
// Call SetClient before creating NetworkServiceClient, as the latter
......@@ -300,7 +292,6 @@ network::mojom::NetworkService* GetNetworkService() {
g_network_service_is_responding = false;
g_network_service_remote->QueryVersion(base::BindRepeating(
[](base::Time start_time, uint32_t) {
AddNetworkServiceDebugEvent("RESP");
g_network_service_is_responding = true;
base::TimeDelta delta = base::Time::Now() - start_time;
UMA_HISTOGRAM_MEDIUM_TIMES("NetworkService.TimeToFirstResponse",
......@@ -506,24 +497,4 @@ void PingNetworkService(base::OnceClosure closure) {
base::Passed(std::move(closure))));
}
void AddNetworkServiceDebugEvent(const std::string& event) {
auto& events = GetDebugEvents();
events.push_front({event, base::Time::Now()});
// Keep at most 20 most recent events.
if (events.size() > 20)
events.pop_back();
}
std::string GetNetworkServiceDebugEventsString() {
auto& events = GetDebugEvents();
if (events.empty())
return std::string();
std::stringstream stream;
base::Time now = base::Time::Now();
for (const auto& info : events) {
stream << info.first << ":" << (now - info.second).InSecondsF() << ",";
}
return stream.str();
}
} // namespace content
......@@ -56,8 +56,6 @@ enum class SSLKeyLogFileAction {
CONTENT_EXPORT NetworkServiceAvailability GetNetworkServiceAvailability();
CONTENT_EXPORT base::TimeDelta GetTimeSinceLastNetworkServiceCrash();
CONTENT_EXPORT void PingNetworkService(base::OnceClosure closure);
CONTENT_EXPORT void AddNetworkServiceDebugEvent(const std::string& event);
CONTENT_EXPORT std::string GetNetworkServiceDebugEventsString();
// Shuts down the in-process network service or disconnects from the out-of-
// process one, allowing it to shut down.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment