From 87afd52fb594433bf2005b7c680b86737b096d1d Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Thu, 28 Mar 2019 11:05:53 -0700 Subject: [PATCH] adbd: demote CHECKs to warning logs. It seems like we don't actually always get these events in order, so demote them to a log and restart the connection instead of aborting. Bug: http://b/129464137 Test: mma Change-Id: I7dffbf62f9dea665cf9f9f9e1bd18d444b6905ec --- adb/daemon/usb.cpp | 48 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/adb/daemon/usb.cpp b/adb/daemon/usb.cpp index 14cdb6961..8c33ca580 100644 --- a/adb/daemon/usb.cpp +++ b/adb/daemon/usb.cpp @@ -304,33 +304,57 @@ struct UsbFfsConnection : public Connection { switch (event.type) { case FUNCTIONFS_BIND: - CHECK(!bound) << "received FUNCTIONFS_BIND while already bound?"; - CHECK(!enabled) << "received FUNCTIONFS_BIND while already enabled?"; - bound = true; + if (bound) { + LOG(WARNING) << "received FUNCTIONFS_BIND while already bound?"; + running = false; + } + if (enabled) { + LOG(WARNING) << "received FUNCTIONFS_BIND while already enabled?"; + running = false; + } + + bound = true; break; case FUNCTIONFS_ENABLE: - CHECK(bound) << "received FUNCTIONFS_ENABLE while not bound?"; - CHECK(!enabled) << "received FUNCTIONFS_ENABLE while already enabled?"; - enabled = true; + if (!bound) { + LOG(WARNING) << "received FUNCTIONFS_ENABLE while not bound?"; + running = false; + } + if (enabled) { + LOG(WARNING) << "received FUNCTIONFS_ENABLE while already enabled?"; + running = false; + } + + enabled = true; StartWorker(); break; case FUNCTIONFS_DISABLE: - CHECK(bound) << "received FUNCTIONFS_DISABLE while not bound?"; - CHECK(enabled) << "received FUNCTIONFS_DISABLE while not enabled?"; - enabled = false; + if (!bound) { + LOG(WARNING) << "received FUNCTIONFS_DISABLE while not bound?"; + } + if (!enabled) { + LOG(WARNING) << "received FUNCTIONFS_DISABLE while not enabled?"; + } + + enabled = false; running = false; break; case FUNCTIONFS_UNBIND: - CHECK(!enabled) << "received FUNCTIONFS_UNBIND while still enabled?"; - CHECK(bound) << "received FUNCTIONFS_UNBIND when not bound?"; - bound = false; + if (enabled) { + LOG(WARNING) << "received FUNCTIONFS_UNBIND while still enabled?"; + } + if (!bound) { + LOG(WARNING) << "received FUNCTIONFS_UNBIND when not bound?"; + } + + bound = false; running = false; break; }