From 57051da86e70fb49d8679b2367239d9c612e082b Mon Sep 17 00:00:00 2001 From: "stevenjb@chromium.org" Date: Fri, 8 Aug 2014 21:57:19 +0000 Subject: 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 --- dbus/object_proxy.cc | 19 ++++++++++++++----- dbus/object_proxy.h | 3 ++- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'dbus') 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 -- cgit v1.1