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

Issue 827026 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

powerd's DisplayService SetPower D-Bus calls to Chrome fail

Project Member Reported by dbasehore@chromium.org, Mar 29 2018

Issue description

Chrome Version: scarlet R67-10502.0.0
OS: Chrome OS

What steps will reproduce the problem?
(1) Press Power Button while logged in (user or guest)

What is the expected result?
Display turns off, and the panel disable function is called in the kernel.

What happens instead?
Display goes black (and backlight turns off), but the disable function isn't called in the kernel. The display logic still consumes power as a result.

from chrome log:
[3856:3870:0328/215214.108642:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.3
signature: i
serial: 917

int32_t 1

[3856:3870:0328/215214.769122:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.3
signature: i
serial: 921

int32_t 0

[3856:3870:0328/215215.926479:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.3
signature: i
serial: 929

int32_t 1

[3856:3870:0328/215217.217853:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.3
signature: i
serial: 933

int32_t 0

[3856:3870:0328/215218.488843:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.3
signature: i
serial: 941

int32_t 1

[3856:3870:0328/215219.625100:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.3
signature: i
serial: 946

int32_t 0

I see the disable function getting called in the kernel when Chrome restarts or when I switch to/from Frecon. 
 

Comment 1 by derat@chromium.org, Mar 29 2018

Cc: jamescook@chromium.org
Components: OS>Kernel>Power OS>Kernel>Display
Labels: Proj-Mustash-Mash
Owner: derat@chromium.org
Status: Started (was: Untriaged)
Summary: powerd's DisplayService SetPower D-Bus calls to Chrome fail (was: Scarlet: Display doesn't completely turn when power button is pressed)
I think that this is the same thing that I'm seeing. On a ToT caroline build with ToT Chrome at r546953, immediately after booting I see errors like the following in /var/log/power_manager/powerd.LATEST:

[0329/160430:INFO:daemon.cc(1051)] D-Bus org.chromium.DisplayService ownership changed to :1.10
[0329/160430:INFO:display_power_setter.cc(81)] Asking DisplayService to turn all displays on
[0329/160430:ERROR:object_proxy.cc(582)] Failed to call method: org.chromium.DisplayServiceInterface.SetPower: object_path= /org/chromium/DisplayService: org.freedesktop.DBus.Error.UnknownMethod: Method "SetPower" with signature "i" on interface "org.chromium.DisplayServiceInterface" doesn't exist

[0329/160430:INFO:display_power_setter.cc(81)] Asking DisplayService to turn all displays on
[0329/160430:ERROR:object_proxy.cc(582)] Failed to call method: org.chromium.DisplayServiceInterface.SetPower: object_path= /org/chromium/DisplayService: org.freedesktop.DBus.Error.UnknownMethod: Method "SetPower" with signature "i" on interface "org.chromium.DisplayServiceInterface" doesn't exist

----

/var/log/chrome/chrome contains this:

[1507:1729:0329/160430.080363:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.2
signature: i
serial: 34

int32_t 0

[1507:1729:0329/160430.082517:WARNING:exported_object.cc(216)] Unknown method: message_type: MESSAGE_METHOD_CALL
destination: org.chromium.DisplayService
path: /org/chromium/DisplayService
interface: org.chromium.DisplayServiceInterface
member: SetPower
sender: :1.2
signature: i
serial: 35

int32_t 0

----

The problem is this code in chrome_browser_main_chromeos.cc:

    if (GetAshConfig() == ash::Config::CLASSIC) {
      // TODO(lannm): This will eventually be served by mus-ws.
      display_service_providers.push_back(
          std::make_unique<DisplayPowerServiceProvider>(
              std::make_unique<ChromeDisplayPowerServiceProviderDelegate>()));
    }

GetAshConfig returns ash::Config::MUS now (at least in my dev build). I think that the condition should instead be "GetAshConfig() != ash::Config::MASH".
Project Member

Comment 2 by bugdroid1@chromium.org, Mar 30 2018

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

commit 27176aa4e56676b11df15ffb12611e32c2d2be03
Author: Daniel Erat <derat@chromium.org>
Date: Fri Mar 30 00:53:25 2018

chromeos: Export display power D-Bus methods for mus.

chrome_browser_main_chromeos.cc was only initializing the
DisplayPowerServiceProvider class, which exports the
SetPower method for the org.chromium.DisplayService D-Bus
service, for ash::Config::CLASSIC. We appear to be using
ash::Config::MUS now. Initialize the provider for everything
besides ash::Config::MASH instead.

Bug:  827026 
Change-Id: Ic444682d63ff40a762f80b859d1a4795149e4d60
Reviewed-on: https://chromium-review.googlesource.com/987106
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Dan Erat <derat@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547047}
[modify] https://crrev.com/27176aa4e56676b11df15ffb12611e32c2d2be03/chrome/browser/chromeos/chrome_browser_main_chromeos.cc

Comment 3 by derat@chromium.org, Mar 30 2018

Status: Fixed (was: Started)

Sign in to add a comment