THRIFT-4245 Golang TFramedTransport's writeBuffer increases if writes to transport failed
Client: Go
Patch: liduo04 <pirdol@qq.com>

This closes #1303
diff --git a/lib/go/thrift/framed_transport.go b/lib/go/thrift/framed_transport.go
index 4ae1425..60b1249 100644
--- a/lib/go/thrift/framed_transport.go
+++ b/lib/go/thrift/framed_transport.go
@@ -141,11 +141,13 @@
 	binary.BigEndian.PutUint32(buf, uint32(size))
 	_, err := p.transport.Write(buf)
 	if err != nil {
+		p.buf.Truncate(0)
 		return NewTTransportExceptionFromError(err)
 	}
 	if size > 0 {
 		if n, err := p.buf.WriteTo(p.transport); err != nil {
 			print("Error while flushing write buffer of size ", size, " to transport, only wrote ", n, " bytes: ", err.Error(), "\n")
+			p.buf.Truncate(0)
 			return NewTTransportExceptionFromError(err)
 		}
 	}