diff options
author | Daichi Hirono <hirono@google.com> | 2017-06-09 13:12:21 +0900 |
---|---|---|
committer | Daichi Hirono <hirono@google.com> | 2017-06-12 10:37:08 +0900 |
commit | e5a1556d402789dc02aa041c8d04d0b23a0ce68e (patch) | |
tree | aaee25a43666860c95eba19a4442516f9b682002 /libappfuse | |
parent | 435baf5d00162b6f14ada5f243ae49c62714d03f (diff) | |
download | core-e5a1556d402789dc02aa041c8d04d0b23a0ce68e.tar.gz |
Add more logs for writing failures.
Bug: 62429763
Test: libappfuse_test
Change-Id: Ie0eabd09ae9ad3f8ba8c4f38f871dad16b5c58ff
Diffstat (limited to 'libappfuse')
-rw-r--r-- | libappfuse/FuseBridgeLoop.cc | 13 | ||||
-rw-r--r-- | libappfuse/FuseBuffer.cc | 5 |
2 files changed, 17 insertions, 1 deletions
diff --git a/libappfuse/FuseBridgeLoop.cc b/libappfuse/FuseBridgeLoop.cc index 3f47066a8..07923071b 100644 --- a/libappfuse/FuseBridgeLoop.cc +++ b/libappfuse/FuseBridgeLoop.cc @@ -57,6 +57,12 @@ void GetObservedEvents(FuseBridgeState state, int* device_events, int* proxy_eve return; } } + +void LogResponseError(const std::string& message, const FuseResponse& response) { + LOG(ERROR) << message << ": header.len=" << response.header.len + << " header.error=" << response.header.error + << " header.unique=" << response.header.unique; +} } class FuseBridgeEntry { @@ -135,6 +141,7 @@ class FuseBridgeEntry { } if (!buffer_.response.Write(device_fd_)) { + LogResponseError("Failed to write a reply from proxy to device", buffer_.response); return FuseBridgeState::kClosing; } @@ -200,6 +207,7 @@ class FuseBridgeEntry { } if (!buffer_.response.Write(device_fd_)) { + LogResponseError("Failed to write a response to device", buffer_.response); return FuseBridgeState::kClosing; } @@ -215,6 +223,11 @@ class FuseBridgeEntry { case ResultOrAgain::kSuccess: return FuseBridgeState::kWaitToReadEither; case ResultOrAgain::kFailure: + LOG(ERROR) << "Failed to write a request to proxy:" + << " header.len=" << buffer_.request.header.len + << " header.opcode=" << buffer_.request.header.opcode + << " header.unique=" << buffer_.request.header.unique + << " header.nodeid=" << buffer_.request.header.nodeid; return FuseBridgeState::kClosing; case ResultOrAgain::kAgain: return FuseBridgeState::kWaitToWriteProxy; diff --git a/libappfuse/FuseBuffer.cc b/libappfuse/FuseBuffer.cc index 653e96b28..1b47e0a35 100644 --- a/libappfuse/FuseBuffer.cc +++ b/libappfuse/FuseBuffer.cc @@ -115,7 +115,10 @@ ResultOrAgain WriteInternal(const FuseMessage<T>* self, int fd, int sockflag, co case EAGAIN: return ResultOrAgain::kAgain; default: - PLOG(ERROR) << "Failed to write a FUSE message"; + PLOG(ERROR) << "Failed to write a FUSE message: " + << "fd=" << fd << " " + << "sockflag=" << sockflag << " " + << "data=" << data; return ResultOrAgain::kFailure; } } |