diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-08 21:57:19 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-08 21:58:26 +0000 |
commit | 57051da86e70fb49d8679b2367239d9c612e082b (patch) | |
tree | 20b3de1df2be2a15037c77e1c3e7e7319ef5d672 /dbus | |
parent | 5b6ce11b90bceaa4d5e4353c574a97117ffe9481 (diff) | |
download | chromium_src-57051da86e70fb49d8679b2367239d9c612e082b.zip chromium_src-57051da86e70fb49d8679b2367239d9c612e082b.tar.gz chromium_src-57051da86e70fb49d8679b2367239d9c612e082b.tar.bz2 |
Reduce DBus ObjectUnknown ERROR to WARNING
BUG=401571
Review URL: https://codereview.chromium.org/455533002
Cr-Commit-Position: refs/heads/master@{#288446}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288446 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/object_proxy.cc | 19 | ||||
-rw-r--r-- | dbus/object_proxy.h | 3 |
2 files changed, 16 insertions, 6 deletions
diff --git a/dbus/object_proxy.cc b/dbus/object_proxy.cc index 5167cab..d0b660b 100644 --- a/dbus/object_proxy.cc +++ b/dbus/object_proxy.cc @@ -24,6 +24,7 @@ namespace dbus { namespace { const char kErrorServiceUnknown[] = "org.freedesktop.DBus.Error.ServiceUnknown"; +const char kErrorObjectUnknown[] = "org.freedesktop.DBus.Error.UnknownObject"; // Used for success ratio histograms. 1 for success, 0 for failure. const int kSuccessRatioHistogramMaxValue = 2; @@ -561,12 +562,20 @@ void ObjectProxy::LogMethodCallFailure( const base::StringPiece& method_name, const base::StringPiece& error_name, const base::StringPiece& error_message) const { - if (ignore_service_unknown_errors_ && error_name == kErrorServiceUnknown) + if (ignore_service_unknown_errors_ && + (error_name == kErrorServiceUnknown || error_name == kErrorObjectUnknown)) return; - LOG(ERROR) << "Failed to call method: " - << interface_name << "." << method_name - << ": object_path= " << object_path_.value() - << ": " << error_name << ": " << error_message; + logging::LogSeverity severity = logging::LOG_ERROR; + // "UnknownObject" indicates that an object or service is no longer available, + // e.g. a Shill network service has gone out of range. Treat these as warnings + // not errors. + if (error_name == kErrorObjectUnknown) + severity = logging::LOG_WARNING; + std::ostringstream msg; + msg << "Failed to call method: " << interface_name << "." << method_name + << ": object_path= " << object_path_.value() + << ": " << error_name << ": " << error_message; + logging::LogAtLevel(severity, msg.str()); } void ObjectProxy::OnCallMethodError(const std::string& interface_name, diff --git a/dbus/object_proxy.h b/dbus/object_proxy.h index 48c9c03..2d4ea68 100644 --- a/dbus/object_proxy.h +++ b/dbus/object_proxy.h @@ -46,7 +46,8 @@ class CHROME_DBUS_EXPORT ObjectProxy // Options to be OR-ed together when calling Bus::GetObjectProxyWithOptions(). // Set the IGNORE_SERVICE_UNKNOWN_ERRORS option to silence logging of - // org.freedesktop.DBus.Error.ServiceUnknown errors. + // org.freedesktop.DBus.Error.ServiceUnknown errors and + // org.freedesktop.DBus.Error.ObjectUnknown errors. enum Options { DEFAULT_OPTIONS = 0, IGNORE_SERVICE_UNKNOWN_ERRORS = 1 << 0 |