summaryrefslogtreecommitdiff
path: root/CHANGES.md
diff options
context:
space:
mode:
authorYuxuan 'fishy' Wang <yuxuan.wang@reddit.com>2020-06-12 22:22:35 -0700
committerYuxuan 'fishy' Wang <yuxuan.wang@reddit.com>2020-06-15 13:28:38 -0700
commite79f764f09afdfe829a06ca721059d34244d7c20 (patch)
tree9680d1a399fe1e60a7f399a5a80cf3fb6a6a501a /CHANGES.md
parent3f78c70bbba82c733b1545d39eb5b489ac384e4c (diff)
downloadthrift-e79f764f09afdfe829a06ca721059d34244d7c20.tar.gz
THRIFT-5233: Handle I/O timeouts in go library
Client: go As discussed in the JIRA ticket, this commit changes how we handle I/O timeouts in the go library. This is a breaking change that adds context to all Read*, Write*, and Skip functions to TProtocol, along with the compiler change to support that, and also adds context to TStandardClient.Recv, TDeserializer, TStruct, and a few others. Along with the function signature changes, this commit also implements context cancellation check in the following TProtocol's ReadMessageBegin implementations: - TBinaryProtocol - TCompactProtocol - THeaderProtocol In those ReadMessageBegin implementations, if the passed in context object has a deadline attached, it will keep retrying the I/O timeout errors, until the deadline on the context object passed. They won't retry I/O timeout errors if the passed in context does not have a deadline attached (still return on the first error).
Diffstat (limited to 'CHANGES.md')
-rw-r--r--CHANGES.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/CHANGES.md b/CHANGES.md
index fbaf35dff..ceb8f8b6f 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -14,6 +14,7 @@
- [THRIFT-5138](https://issues.apache.org/jira/browse/THRIFT-5138) - Swift generator does not escape keywords properly
- [THRIFT-5164](https://issues.apache.org/jira/browse/THRIFT-5164) - In Go library TProcessor interface now includes ProcessorMap and AddToProcessorMap functions.
- [THRIFT-5186](https://issues.apache.org/jira/browse/THRIFT-5186) - cpp: use all getaddrinfo() results when retrying failed bind() in T{Nonblocking,}ServerSocket
+- [THRIFT-5233](https://issues.apache.org/jira/browse/THRIFT-5233) - go: Now all Read*, Write* and Skip functions in TProtocol accept context arg
### Java
@@ -24,6 +25,7 @@
- [THRIFT-5069](https://issues.apache.org/jira/browse/THRIFT-5069) - Add TSerializerPool and TDeserializerPool, which are thread-safe versions of TSerializer and TDeserializer.
- [THRIFT-5164](https://issues.apache.org/jira/browse/THRIFT-5164) - Add ClientMiddleware function type and WrapClient function to support wrapping a TClient with middleware functions.
- [THRIFT-5164](https://issues.apache.org/jira/browse/THRIFT-5164) - Add ProcessorMiddleware function type and WrapProcessor function to support wrapping a TProcessor with middleware functions.
+- [THRIFT-5233](https://issues.apache.org/jira/browse/THRIFT-5233) - Add context deadline check to ReadMessageBegin in TBinaryProtocol, TCompactProtocol, and THeaderProtocol.
## 0.13.0