This is a minor maintenance release appropriate for all ServiceTalk users that contains several useful improvements and bug fixes. This release is expected to be a "drop-in" replacement for all prior 0.42.X releases.
Changes
Behavior Changes
- cd847dc - Prevent users from blocking on
IoThreador non-blickingThreads (#3422)- Blocking operations known to ServiceTalk will throw
IllegalBlockingOperationExceptionif they run onNonBlockingThread. - Users can set
-Dio.servicetalk.concurrent.api.warnOnNonBlockingThread=trueto emit aWARNlogging instead of throwing an exception.
- Blocking operations known to ServiceTalk will throw
- d9f496a - Increase default limits for HTTP/1.x and HTTP/2 configurations (#3427)
- H1ProtocolConfig.maxStartLineLength(): 4Kb -> 8Kb
- H1ProtocolConfig.maxHeaderFieldLength(): 8Kb -> 16Kb
- H1ProtocolConfig.maxTotalHeaderFieldsLength(): 8Kb -> 32Kb
- Http2Settings#maxHeaderListSize(): 8Kb -> 32Kb
New Features
- b41e483 - http-api: Add filter support to the
MultiAddressClientBuilder(#3420) - a033d6f - http-netty: add ability to delay service discovery errors in
RetryingHttpRequesterFilter(#3413) - bc5224e - dns-discovery-netty: Add support for DNS backup requests (#3369)
- a01fd9d - Add support for HTTP/1.x total header size limit (#3407, #3421, #3423, #3428)
-Dio.servicetalk.http.netty.temporarilyDefaultMaxTotalHeaderFieldsLength=valuecan be used to temporarily adjust default limit of 32Kb until it can be configured viaH1ProtocolConfigBuilder#maxTotalHeaderFieldsLength(int)API.
Bug Fixes
- e03f8ca - loadbalancer: fix bad interaction between subsetting and
minConnectionsPerHostthat led to creating excess connections (#3402)
Improvements
- f5ce481 - Warn if users set
-Dio.servicetalk.http.netty.skipConcurrentRequestCheck=true(#3430) - c60b67c - Improve debuggability of concurrent request check (#3424)
- 12a2e5e - http-netty: use same
HttpHeadersimplementation for HTTP/1.x and HTTP/2 (#3409)- This helps to smooth upgrade from HTTP/1.x to HTTP/2 protocol by removing requirement to set all headers in lowercase, headers will be automatically lowercased if necessary
- 807cea8 - http-netty: allow setting new
ServiceDiscovererwithON_NEW_CONNECTIONstrategy on a client builder (#3406) - 0935c98 - Ensure
TooLongFrameExceptionis thrown consistently for all HTTP/1.x limits (#3426)
Dependencies
Thank you
Every idea, review, and bug-report counts and so we thought it is worth mentioning those who helped in this area. Please report any unintended omission.
@bryce-anderson
@idelpivnitskiy
@LiwaaCoder
@daschl
Full Changelog: 0.42.62...0.42.63