diff options
author | Yuxuan 'fishy' Wang <yuxuan.wang@reddit.com> | 2020-06-12 22:22:35 -0700 |
---|---|---|
committer | Yuxuan 'fishy' Wang <yuxuan.wang@reddit.com> | 2020-06-15 13:28:38 -0700 |
commit | e79f764f09afdfe829a06ca721059d34244d7c20 (patch) | |
tree | 9680d1a399fe1e60a7f399a5a80cf3fb6a6a501a /CHANGES.md | |
parent | 3f78c70bbba82c733b1545d39eb5b489ac384e4c (diff) | |
download | thrift-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.md | 2 |
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 |