THRIFT-3077 TFileTransport fix ignored ftruncate result
diff --git a/lib/cpp/src/thrift/transport/TFileTransport.cpp b/lib/cpp/src/thrift/transport/TFileTransport.cpp
index fe6ef9b..8f6fe8e 100644
--- a/lib/cpp/src/thrift/transport/TFileTransport.cpp
+++ b/lib/cpp/src/thrift/transport/TFileTransport.cpp
@@ -310,8 +310,13 @@
seekToEnd();
// throw away any partial events
offset_ += readState_.lastDispatchPtr_;
- THRIFT_FTRUNCATE(fd_, offset_);
- readState_.resetAllValues();
+ if (0 == THRIFT_FTRUNCATE(fd_, offset_)) {
+ readState_.resetAllValues();
+ } else {
+ int errno_copy = THRIFT_ERRNO;
+ GlobalOutput.perror("TFileTransport: writerThread() truncate ", errno_copy);
+ hasIOError = true;
+ }
} catch (...) {
int errno_copy = THRIFT_ERRNO;
GlobalOutput.perror("TFileTransport: writerThread() initialization ", errno_copy);