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);