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

Issue 714206 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android , Windows
Pri: 1
Type: Bug



Sign in to add a comment

Regression in messages getting to renderer processes

Project Member Reported by scottmg@chromium.org, Apr 21 2017

Issue description

Repro:

On a laptop:

- Run a page that does some animation, for example vsynctester.com
- Detach from AC power
- run `powercfg -energy duration 5` and note that the renderer process is still setting timer frequency to "10000", rather than "40000" like the browser (and like it ought to).

Previously a refactoring broke this in a different way and it was repaired here https://bugs.chromium.org/p/chromium/issues/detail?id=696197#c25.

Dale points out a similar UMA regression visible on Android https://uma.googleplex.com/p/chrome/timeline_v2?sid=693dd3d6b527539934932a8e234ecbc0 .

I did a continuous bisect and it identified https://codereview.chromium.org/2795883002 as the regression CL.
 
Thanks Scott. Seems this is easy enough to break that we should get a test added around this. If no other testing path is obvious we could add a 10s media clip and force battery power and check that battery watch time is reported.
Project Member

Comment 2 by sheriffbot@chromium.org, Apr 25 2017

This issue is marked as a release blocker with no milestone associated. Please add an appropriate milestone.

All release blocking issues should have milestones associated to it, so that the issue can tracked and the fixes can be pushed promptly.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: M-59
The above CL landed in 59.0.3066.0

Comment 4 by gov...@chromium.org, Apr 25 2017

A friendly reminder that M59 Beta  launch is coming soon! Your bug is labelled as Release Block Beta. All fixes need to be merged into the release branch (3071) latest by tomorrow, 04/26 4:00 PM PT in order to make into the desktop Beta final build cut. Thank you!
Cc: benhenry@chromium.org
Labels: -ReleaseBlock-Beta ReleaseBlock-Stable
I spoke with scottmg@ and we don't have to gate beta on this, stable is sufficient.  That said - we should fix this and merge it to the beta branch ASAP, as power regressions suck.

Adding benhenry@ as an FYI in case this is something we can monitor in the future.
Labels: Performance-Loading
Do we need this in M59? It landed right around the branch point, but is large so maybe a revert won't go cleanly.

I think until we know what's wrong it's hard to say if this is limited to just a power regression or if other important messages (as the bug title indicates) are being dropped.
Owner: blundell@chromium.org
Status: Started (was: Assigned)
I'll look at this.
Cc: ben@chromium.org
Status: WontFix (was: Started)
This issue is already fixed on trunk, it turns out (although I don't know if the fix was made with awareness of the issue). The issue is that https://codereview.chromium.org/2795883002 moved services away from implementing OnConnect() but left several clients still relying on the relevant service implementing OnConnect() (the default impl is do-nothing). One of those clients was ChildThreadImpl, which connected to the Device Service via connector->Connect("services:device")->GetRemoteInterfaces() in order to then connect to the PowerMonitor. Since the Device Service no longer implemented OnConnect() as of the CL in question, the InterfaceProvider returned from that client-side invocation was empty.

This CL fixed the problem as part of eliminating OnConnect() entirely: https://codereview.chromium.org/2804373002. The earlier CL had left other similar problematic client-side invocations, but all of them were fixed in that followup CL as part of completely eliminating the client-side usage of Connector::Connect().

Totally agreed about an end-to-end test. Filed  crbug.com/715985 , which the team doing the Device Service will own.
Status: Fixed (was: WontFix)
On second thought, moving to fixed so that QA can verify that the problematic behavior described in the OP is no longer reproducible on trunk (I don't have a Windows laptop to build on -- I did as complete testing as I could on Linux to verify my reasoning, but couldn't do the full end-to-end verification there).
Labels: Merge-TBD
[Auto-generated comment by a script] We noticed that this issue is targeted for M-59; it appears the fix may have landed after branch point, meaning a merge might be required. Please confirm if a merge is required here - if so add Merge-Request-59 label, otherwise remove Merge-TBD label. Thanks.
Labels: -Merge-TBD
Why do you think this should not be merged?
Labels: Merge-Request-59
The CL with the fix is 464167, whereas 59 was cut at 464641.

Although that raises a different and interesting question. 464167 landed on April 12, whereas this bug report is from April 21. scottmg@, did you do the testing in the OP on a build that included 464167? If so, it would seem that my reasoning isn't actually sufficient (the testing that I was able to do on Linux and Android indicates that at least on those platforms, 464167 restored the connection that had been broken in https://codereview.chromium.org/2795883002).
Labels: -Merge-Request-59
blergh.
I did the continuous bisect on the small range in 59.0.3065.0..59.0.3067.0 to identify the individual CL, as we'd already narrowed it down to that range.

So I don't think there's anything to be merged as the breakage was 59.0.3066.0, the fix was 59.0.3070.0, and the branch was 59.0.3071.0.

But we should still get QA to confirm.

Sign in to add a comment