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

Issue 752239 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

AppNapActivity DCHECK

Project Member Reported by erikc...@chromium.org, Aug 3 2017

Issue description

Debug build, ToT: ea769cd80bcb97a62b0bc715ba40575af2eb269e
[I have some smal, unrelated changes on top of that].

1) Clean profile, log in to gmail.com
2) Open a new window.
3) Tab away to a Canary instance of Chrome. Wait 5-10 seconds.

[73633:775:0803/122646.179785:FATAL:app_nap_activity.mm(39)] Check failed: !assertion_->obj.get(). 
0   libbase.dylib                       0x000000010a71157e base::debug::StackTrace::StackTrace(unsigned long) + 174
1   libbase.dylib                       0x000000010a71163d base::debug::StackTrace::StackTrace(unsigned long) + 29
2   libbase.dylib                       0x000000010a70f8ec base::debug::StackTrace::StackTrace() + 28
3   libbase.dylib                       0x000000010a7aedcf logging::LogMessage::~LogMessage() + 479
4   libbase.dylib                       0x000000010a7ac735 logging::LogMessage::~LogMessage() + 21
5   libcontent.dylib                    0x0000000127ab711c content::AppNapActivity::~AppNapActivity() + 300
6   libcontent.dylib                    0x0000000127ab73f5 content::AppNapActivity::~AppNapActivity() + 21
7   libcontent.dylib                    0x0000000127620ec0 content::ChildThreadImpl::~ChildThreadImpl() + 1232
8   libcontent.dylib                    0x000000012b26c01a content::UtilityThreadImpl::~UtilityThreadImpl() + 618
9   libcontent.dylib                    0x000000012b26c060 content::UtilityThreadImpl::~UtilityThreadImpl() + 32
10  libcontent.dylib                    0x000000012b26c139 content::UtilityThreadImpl::~UtilityThreadImpl() + 25
11  libcontent.dylib                    0x0000000127617bcf content::ChildProcess::~ChildProcess() + 703
12  libcontent.dylib                    0x0000000127617e95 content::ChildProcess::~ChildProcess() + 21
13  libcontent.dylib                    0x000000012b266ea2 content::UtilityMain(content::MainFunctionParams const&) + 1090
14  libcontent.dylib                    0x000000012b2ab679 content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) + 585
15  libcontent.dylib                    0x000000012b2acee0 content::ContentMainRunnerImpl::Run() + 1280
16  libcontent.dylib                    0x000000012b2a9c7d content::ContentServiceManagerMainDelegate::RunEmbedderProcess() + 61
17  libembedder.dylib                   0x000000010cd7d3c7 service_manager::Main(service_manager::MainParams const&) + 1911
18  libcontent.dylib                    0x000000012b2ab3e9 content::ContentMain(content::ContentMainParams const&) + 89
19  libchrome_dll.dylib                 0x000000011100e1be ChromeMain + 270
20  Chromium Helper                     0x000000010a635c1d main + 1565
21  libdyld.dylib                       0x00007fffcd9bd235 start + 1


 
Local changes:

"""
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm
index 38acfd74864c..6af5c681b43f 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
@@ -8,6 +8,7 @@
 #include <numeric>
 #include <utility>
 
+#include "chrome/browser/metrics/process_memory_metrics_emitter.h"
 #include "base/command_line.h"
 #include "base/mac/bundle_locations.h"
 #import "base/mac/foundation_util.h"
@@ -443,6 +444,9 @@ bool IsTabDetachingInFullscreenEnabled() {
     // We are done initializing now.
     initializing_ = NO;
   }
+
+  scoped_refptr<ProcessMemoryMetricsEmitter> e = new ProcessMemoryMetricsEmitter;
+  e->FetchAndEmitProcessMemoryMetrics();
   return self;
 }
 
"""

Comment 2 by lgrey@chromium.org, Aug 4 2017

Status: Started (was: Assigned)
Project Member

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

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

commit e589820548b464f469434c3a9b691411d66bcbc4
Author: Leonard Grey <lgrey@chromium.org>
Date: Fri Aug 04 20:28:56 2017

[Mac] End AppNap activity in destructor

Previously we were relying on the fact that renderers background before
closing. This isn't true for all child processes, so check if an
activity assertion still exists in AppNapActivity's destructor, and if
so, end it.

Bug:  752239 
Change-Id: I82fe02fec756926527a2b8acc523f325c6685669
Reviewed-on: https://chromium-review.googlesource.com/602628
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492115}
[modify] https://crrev.com/e589820548b464f469434c3a9b691411d66bcbc4/content/common/mac/app_nap_activity.mm
[modify] https://crrev.com/e589820548b464f469434c3a9b691411d66bcbc4/content/common/mac/app_nap_activity_unittest.mm

Comment 4 by lgrey@chromium.org, Sep 14 2017

Status: Fixed (was: Started)
Fixed a while ago (but also now obsolete since AppNap code is gone.)

Sign in to add a comment