New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 752565 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Proj-Servicification



Sign in to add a comment

Network service asserting in histogram code.

Project Member Reported by mmenke@chromium.org, Aug 4 2017

Issue description

If you enable the histogram service on top of tree, you get a crash with the following trace (There are a bunch of different traces you can get, but all crash in Histogram::Factory::Build).

Sample trace:

[121147:121163:0804/180740.067195:FATAL:histogram.cc(200)] Check failed: !allocator. 
#0 0x7fdb4b481217 base::debug::StackTrace::StackTrace()
#1 0x7fdb4b4a8231 logging::LogMessage::~LogMessage()
#2 0x7fdb4b4c0822 base::Histogram::Factory::Build()
#3 0x7fdb4b4c319f base::LinearHistogram::FactoryGetWithRangeDescription()
#4 0x7fdb4b4c32f7 base::LinearHistogram::FactoryGet()
#5 0x7fdb4a23b886 net::HttpCache::Transaction::RecordHistograms()
#6 0x7fdb4a230877 net::HttpCache::Transaction::DoneWritingToEntry()
#7 0x7fdb4a237c10 net::HttpCache::Transaction::DoCacheWriteDataComplete()
#8 0x7fdb4a22eafd net::HttpCache::Transaction::DoLoop()
#9 0x7fdb4a23069f net::HttpCache::Transaction::Read()

I assume this means the NetworkService process should be doing some sort of initialization of globals for histograms.  This trace seems to imply that allocator is non-null, but allocator->AllocateHistogram is failing, which seems weird to me, though I'm unfamiliar with the histograms code.
 
Note that you need to enable the network service to get a crash, which can be done from about:flags.  There's a command line way to enable it, too, but I'm not sure what it is.
Cc: bcwh...@chromium.org
[+bcwhite]  The issue is that browser_child_process_host_impl only allocates 64k of memory to the "SharedPersistentMemoryAllocator" for utility processes.

The network process's histograms exceed this amount (When quic and the disk cache are enabled, we log a lot more histograms), and then when we run out of memory, Histogram::Factory::Build DCHECKs.  So we need to allocate more for a network process.  I guess we need a new process type?  At least I assume we don't want all utility processes to request more.
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e5bc4a56c8ac0317d09a3b7a1e0b189d5b5fc580

commit e5bc4a56c8ac0317d09a3b7a1e0b189d5b5fc580
Author: Matt Menke <mmenke@chromium.org>
Date: Mon Aug 07 23:58:22 2017

Allocate more memory for utility process histograms.

The network service is a utility process, and runs out of histogram
memory when it's enabled.

Bug:  752565 
Change-Id: Ic05d130bca971c6b1268715d0fb1ae519beab954
Reviewed-on: https://chromium-review.googlesource.com/603774
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Commit-Queue: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492460}
[modify] https://crrev.com/e5bc4a56c8ac0317d09a3b7a1e0b189d5b5fc580/content/browser/browser_child_process_host_impl.cc

Status: Fixed (was: Assigned)

Comment 5 by laforge@google.com, Nov 7 2017

Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.

Sign in to add a comment