Releases: apple/servicetalk
0.42.30
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
API deprecations
- 1a15108 - Deprecated some internal classes in
concurrent-internal
(#2566)- Deprecated
io.servicetalk.concurrent.internal.ArrayUtils
; - Deprecated
io.servicetalk.concurrent.internal.ConcurrentTerminalSubscriber
; - Deprecated
io.servicetalk.concurrent.internal.QueueFullAndRejectedSubscribeException
;
- Deprecated
New features
Bug Fixes
- 34078fc - Handle graceful closure for indefinite streams (#2608)
- ee98d18 -
TransportObserver
doesn't propagate connect failure before established (#2600) - 4f4f49a - Jersey router: async endpoints don't propagate
AsyncContext
(#2593) - 6f92e49 - Logging LifeCycleObservers quote connection (#2592)
- 07bd07a -
Publisher#buffer
retry with sequential subscription (#2591) - e334146 - Fix race in
TimeoutDemandPublisher
(#2578) - e0f4ab6 -
Publisher#timeoutDemand
avoid suprious timer error (#2584) - cfc6746 -
HttpObjectDecoder
: handle chunk size greater thanInteger.MAX_VALUE
(#2579, #2594)
Improvements
- 643ea5a - Use an unbounded queue for fixed size Executors (#2546)
- f3929d2 -
ThreadInterruptingCancellable
consolidate state (#2599) - c9f262d -
KeepAliveManager
: improve debuggability (#2605) - eeebde9 -
KeepAlivePolicy
: validation, improved defaults & javadoc, ns precision (#2602) - bca9f11 - Jersey's
EndpointEnhancingRequestFilter
: useSingle.fromSupplier
(#2596) - 8d7697e - Delete code that is not used anywhere (#2597)
Testing
- 6be77e1 - Test HTTP/2
KeepAliveManager
withDuplexChannel
(#2604) - 894ab87 -
WriteStreamSubscriberTest
verify writability change (#2606)
Documentation
- 5f8a1cc - Clarify blocking scenarios Subscriber/Subscription (#2598)
- fc8e698 -
Publisher.fromInputStream
: clarifyInputStream
ownership in javadoc (#2586)
Dependencies
- b9da175 - Update netty 4.1.92 -> 4.1.93 (#2609)
- af410dd - Update zipkin-reporter 2.16.3 -> 2.16.4 (#2587)
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
@daschl
@idelpivnitskiy
@Scottmitch
@tkountis
0.42.29
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
API deprecations
- 6db81bc -
Http2SettingsBuilder.initialWindowSize
should acceptint
, notlong
(#2573)- Deprecate
Http2SettingsBuilder.initialWindowSize(long)
, users should migrate toHttp2SettingsBuilder.initialWindowSize(int)
;
- Deprecate
New features
Bug Fixes
- abe118d - Avoid int overflow when receive large
MAX_CONCURRENT_STREAMS
value (#2572) - 9f25cd6 - Convert IPv6 colons to dots for the new peer host (#2575)
Improvements
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
@daschl
@idelpivnitskiy
@Scottmitch
@tkountis
0.42.26.1
This is a recommended bug-fix release only for 0.42.26 users if they can not upgrade to 0.42.28.
Changes
Bug Fixes
- 1d8c08f -
DefaultDnsClient
: make configuration for all caches consistent (#2530) - fac100a -
RetryingHttpRequesterFilter
to duplicate payload body (#2541) - 6da8c12 - Avoid int overflow when receive large
MAX_CONCURRENT_STREAMS
value (#2572)
Improvements
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.
0.42.28
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
Bug Fixes
- de05283 -
Publisher#timeout
always propagateTimeoutException
(#2555) - 35bf953 -
ConcurrentTerminalSubscriber
fix deferred terminal concurrency (#2556) - 6a8a226 -
Publisher.takeUntil(Completable)
: preserve original terminal signal (#2565) - 75db082 -
HttpConnectionContext
must reference single-threadedIoExecutor
(#2564)
Improvements
- 041f3dc - Allow null values with
FormUrlEncodedHttp[De]Serializer
(#2554) - 00179dd -
DefaultDnsClient
reduce log level for TTL > max (#2557) - 4011c8f - Improve how we copy payload body in case of redirect (#2563)
- 35ab88d - Don't log "does not allow redirect" for non 3XX status codes (#2562)
- 88086c7 -
RetryingHttpRequesterFilter
: share context when drain response payload (#2568) - 247fde1 -
ConcurrentTerminalSubscriber
: consolidate code forprocess*
methods (#2567)
Documentation
Dependencies
- a143d72 - Update Netty 4.1.91 -> 4.1.92 (#2559)
- e16073f - Update netty-incubator-transport-native-io_uring 0.0.19 -> 0.0.21 (#2569)
- 92f40c3 - Update log4j 2.19.0 -> 2.20.0
- 38fb8ac - Update protobuf 3.21.12 -> 3.22.3
- 4965150 - Update proto-google-common-protos 2.13.0 -> 2.17.0
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.
0.42.27
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
New features
- 10973ca - Add new operators for
Publisher
:merge
,mergeDelayError
,mergeAll
,mergeAllDelayError
(#2533) - d9fd486 - Add
Publisher.skipWhile(Predicate)
operator (#2542) - 2991d28 - Extend
RedirectConfig
: custom allowed statuses and location mapper (#2552) - eb570b6 - New filter:
JavaNetSoTimeoutHttpConnectionFilter
(#2551) - be0043d - Add new tags for OpenTelemetry (#2536)
- 8cb1dd2 - Move
ProxyTunnel
to servicetalk-http-netty-test-fixtures (#2550)
Bug Fixes
- fd9a9c6 -
DefaultDnsClient
: make configuration for all caches consistent (#2530) - cd547f3 -
RetryingHttpRequesterFilter
to duplicate payload body (#2541) - 47fa6c0 -
MultiAddressUrlClient
: incorrect transformation of the request target without path (#2545)
Improvements
- 5e39fb6 - Enhance RRLB logs to let users know when it resubscribed to SD (#2535)
- a9d6619 - Use unpadded jctools queue by default (#2490)
- e3f545a - Implement all default methods in
EmptyHttpHeaders
(#2543) - 14f09b2 -
ProxyConnectConnectionFactoryFilter
: report when the channel is closed (#2544) - 2065040 -
MultiAddressHttpClientBuilder.followRedirects
take a nullable config (#2547)
Dependencies
- bf0b0dc - Update Netty 4.1.89 -> 4.1.91 (#2548)
- 2ff3eef - Only depend on
opentelemetry-api
and not the overallopentelemetry-bom
(#2538)
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.
@aleqi200
@bryce-anderson
@daschl
@idelpivnitskiy
@mgodave
@Scottmitch
@tkountis
0.42.26
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
API deprecations
- Deprecated
DefaultDnsServiceDiscovererBuilder
- Use
DnsServiceDiscoverers#builder(String)
instead (#2511);
- Use
- Deprecated
RoundRobinLoadBalancerFactory
- Use
RoundRobinLoadBalancers#builder(String)
instead (2527);
- Use
- Deprecated
DnsServiceDiscovererObserver#onNewDiscovery(String)
- Use
DnsServiceDiscovererObserver#onNewDiscovery(String, String)
instead (#2521)
- Use
- Deprecated
MultiAddressHttpClientBuilderProvider#newBuilder(MultiAddressHttpClientBuilder)
- Implement
MultiAddressHttpClientBuilderProvider#newBuilder(String, MultiAddressHttpClientBuilder)
(#2525);
- Implement
New features
- fc6881a - Implement explicit, customizable DNS
maxTTL
(#2508) - d2bbae6 - Implement
DnsServiceDiscovererBuilderProvider
(#2511) - 4840dea - Implement
RoundRobinLoadBalancerBuilderProvider
(#2527) - b4543f4 -
RoundRobinLoadBalancer
: re-subscribe when all hosts become unhealthy (#2514) - 5fdb1ad - Extend
DnsServiceDiscovererObserver
functionality (#2521) - 6c2be4c - Option to create a client that runs DNS resolutions for every new connection (#2520)
- 929fa66 - Provide a way to specify an id (label) for
MultiAddressHttpClientBuilder
(#2525)
Bug Fixes
- 57e7001 - Avoid potential memory leak when
SrvAddressRemovedException
is thrown (#2522) - 024d663 -
DnsServiceDiscovererObserver
should always report adjusted TTL (#2526) - 17baadd -
SequentialCancellable
: allnextCancellable
must be cancelled too (#2513) - c91c7a4 - Sequential
Subscriber
is not reset after cancel for all test sources (#2515)
Improvements
- 7919e6a -
DefaultDnsClient
: enhance logging (#2509) - 38d5166 - Disable cache by default for DNS
ServiceDiscoverer
(#2518) - a5f73b3 - Don't allow to override ServiceDiscoverer for resolved address client (#2524)
- 61d74b2 - Use
SslProvider.isOptionSupported(...)
to determine certificate compression support (#2507)
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.
0.42.25
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
API deprecations
- dda6869 - Deprecate
ConnectionAcceptor
andConnectionAcceptorFactory
(#2491)- Migrate to
LateConnectionAcceptor
and useHttpServerBuilder#appendLateConnectionAcceptor(...)
to configure it. Pre-existingHttpServerBuilder#appendConnectionAcceptorFilter(...)
is also deprecated.
- Migrate to
New features
- 570a81a - Implement TLS Certificate Compression Support (#2497)
- 6954627 - Introduce Early and Late ConnectionAcceptors (#2486)
Bug Fixes
Improvements
- c3f4145 -
GrpcServiceContext
should provide access to netty channel id (#2498) - 9b8972f -
GrpcDeadlineServerFilter
: use inner class to capture external state (#2501) - 049af48 - Always disable
AUTO_READ
forTcpServerBinder
(#2492) - 0dcca97 - Keep only preferred addresses for DNS resolutions (#2500)
Dependencies
- 27f856b - Update Netty 4.1.87 -> 4.1.89 (#2505)
- aae691a - Update netty-incubator-transport-native-io_uring 0.0.16 -> 0.0.17
- 492abdc - Update proto-google-common-protos 2.12.0 -> 2.13.0
- 9b594e4 - Update OpenTelemetry 1.18.0 -> 1.22.0
- ec21f9d - Update Jackson 2.14.1 -> 2.14.2
- e5f0853 - Update jctools 3.3.1-ea -> 4.0.1 (#2351)
Documentation
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
@daschl
@idelpivnitskiy
@mgodave
@Scottmitch
@tkountis
0.42.23.1
This is a recommended bug-fix release only for 0.42.23 users if they can not upgrade to 0.42.24.
Changes
Bug Fixes
- 2df3fe9 - Fix a memory leak and increased latency for gRPC after adding
ListenableAsyncCloseable.onClosing()
(#2473) - 0e54e33 - Do not apply
InternalRetryingHttpClientFilter
for reserved connections (#2470) - a251047 - Revert "Preserve the caller's stacktrace for blocking API (#2420)" (#2488)
- Avoids memory leak when Netty reuses the same exception instance.
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.
0.42.24
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
API deprecations
- 8cf86df - Deprecate gRPC
ServiceFactory
constructors that takeRouteExecutionStrategyFactory
(#1624)- Users should use
ServiceFactory.Builder#routeExecutionStrategyFactory(...)
method instead.
- Users should use
- debd2df - Deprecate
ConnectionFactoryFilter#append(...)
(#2480)- Users should use
SingleAddressHttpClientBuilder#appendConnectionFactoryFilter(ConnectionFactoryFilter)
instead.
- Users should use
- 39356fd -
RetryingHttpRequesterFilter
: renameofImmediate
(deprecated) toofImmediateBounded
(new method) (#2459) - 4791eaf - Deprecate
ServiceAdapterHolder
interface and some utilities inHttpApiConversions
(#2460) - 38bda20 - Deprecate unnecessary internal methods of
NettyIoExecutors
(#2474) - 8ecb866 - Deprecate unused
DefaultNettyConnection#initChannel(...)
overload (#2489)
New features
- 5941982 - Provide a common HTTP Service interface for all API variants (#2456)
- 2344448 - Introduce
GrpcExecutionStrategies#offloadNone()
(#2478) - 469dc27 - Allow to open a new connection when reserving (HTTP) (#2476)
Bug Fixes
- 5e3e4ce - Fix a memory leak and increased latency for gRPC after adding
ListenableAsyncCloseable.onClosing()
(#2473) - 8e1d448 - Do not apply
InternalRetryingHttpClientFilter
for reserved connections (#2470) - 6c75e8f - Revert "Preserve the caller's stacktrace for blocking API (#2420)" (#2488)
- Avoids memory leak when Netty reuses the same exception instance.
Improvements
- c4dd3e4 - Make HTTP/1.x server-side control flow consistent with the client-side (#2367) (#2423) (#2419)
- 35d326c - Consider request context when we schedule timeouts or retries (#2482)
- b1f8a4d - Perform GRPC route building lazily on bind (#2467)
- 7e7f201 -
SpecialHttpExecutionStrategy
should implement all interface methods (#2469) - 40bdaa8 - Revert "PublisherAsBlockingIterable LinkedBlockingQueue -> LinkedTransferQueue (#2386)" (#2472)
Dependencies
- d2e0021 - Update Netty 4.1.86 -> 4.1.87 (#2487)
- 7e0cc9a - Update proto-google-common-protos 2.9.2 -> 2.12.0
- 9f97b29 - Update protobuf 3.21.4 -> 3.21.12
- 6e829da - Update Jackson 2.14.0 -> 2.14.1
- 2c52333 - Update log4j 2.18.0 -> 2.19.0
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.
0.42.23
! Note !
This release contains a memory leak introduced in #2430. The issue is fixed in #2473 and available in either 0.42.23.1 or 0.42.24 releases. Upgrade as soon as possible.
Changes
API deprecations
- 8b414d8 - Deprecate
BufferHandler
andBufferHolder
(#2452) - f50a615 - Change return type of
LoadBalancerFactory#newLoadBalancer(...)
(#2465)- A new overload was introduced to change the return type from
<T extends C> LoadBalancer<T>
toLoadBalancer<C>
. This makes it possible for the LoadBalancer implementation to more easily wrap the connection and augment behavior if necessary.
- A new overload was introduced to change the return type from
New features
- e8b584e - This release is JDK19 compatible (#2433)
- 557f530 - Add
ListenableAsyncCloseable#onClosing()
(#2430) - 2ea43f3 - Add
CacheConnectionHttpLoadBalanceFactory
(#2334) - 080d6a0 - Added mark/reset functionality to
BufferInputStream
(#2447)
Bug Fixes
- 344083e -
RetryingHttpRequesterFilter
subtract LB not ready from request retry strategy (#2438) - ce185f1 - CloseHandler force RST on close if still reading to avoid half close hang (#2431)
- 0a9efcc -
RoundRobinLoadBalancer
fix connection leak during graceful closure (#2450) - 8e098e8 -
ConnectionLimitReachedException
should not trigger RRLB health-checking (#2457) - 5608ce7 - Possible race when
MAX_CONCURRENT_STREAMS
setting changes in HTTP/2 (#2461)
Improvements
- d6476f7 -
ScheduledExecutorService
to remove timeout objects on cancel (#2426) - bd5ffea - Improve
DefaultTestCertsTest
and validate cert/key resources (#2427) - b3b6606 - Add
FlowControlUtils.addWithUnderOverflowProtection
forint
(#2437) - b843d5c - Reduce allocation in
PublishAndSubscribeOn*
(#2436) - d5918cc - Provide better exception when connection limit reached in
LimitingConnectionFactoryFilter
(#2454) - e83c645 - Add null checks to generated GRPC API (#2455)
- 10dbc25 -
RetryingHttpRequesterFilter
: changedisableAutoRetries()
, adddisableAllRetries()
(#2458)
Dependencies
- facbcfb - Update Netty 4.1.85 -> 4.1.86 (#2462)
- d76b87b - Update netty-io_uring 0.0.15 -> 0.0.16 (#2443)
Documentation
- 43c69c9 - Add gRPC Request Response Context Example (#2429)
- e9c7be7 - Remove duplicate doc sections from "Blocking: Safe by default" (#2448)
- b93ca66 - Add warning in example that DefaultTestCerts should not be used (#2428)
- f3636fb - Clarify semantics around Jackson's
ByteBufferFeeder
(#2425)
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.
@bobbyowolabi
@daschl
@idelpivnitskiy
@mgodave
@Scottmitch
@tkountis