0

HttpStreamPool: Add debug instrumentation

There seems a case where we don't set `most_recent_tcp_error_` after
all TCP attempts are failed. Reported minidumps don't contain enough
information to identify the cause. This CL adds some
base::debug::Alias to identify the cause.

Bug: 403373872
Change-Id: I7161d2e8703c58d6640b67cf638157d4481447e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6395996
Reviewed-by: Nidhi Jaju <nidhijaju@chromium.org>
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1437943}
This commit is contained in:
Kenichi Ishibashi
2025-03-25 22:40:18 -07:00
committed by Chromium LUCI CQ
parent 10cf7adfe5
commit 80a23f60da

@ -1322,7 +1322,19 @@ void HttpStreamPool::AttemptManager::MaybeAttemptConnection(
TcpBasedAttemptState::kAllEndpointsFailed &&
!quic_task_) {
// Tried all endpoints.
DCHECK(most_recent_tcp_error_.has_value());
// TODO(crbug.com/403373872): Replace the following `if` with CHECK()
// once we identify the root cause.
if (!most_recent_tcp_error_.has_value()) {
const bool is_svcb_optional = IsSvcbOptional();
ConnectionAttempts connection_attempts = connection_attempts_;
std::vector<ServiceEndpoint> endpoints =
service_endpoint_request_->GetEndpointResults();
base::debug::Alias(&is_svcb_optional);
base::debug::Alias(&connection_attempts_);
base::debug::Alias(&endpoints);
DEBUG_ALIAS_FOR_GURL(url_buf, stream_key().destination().GetURL());
NOTREACHED();
}
HandleFinalError(*most_recent_tcp_error_);
}
return;