Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stabilize HttpClientTest#testIssue1478 #2372

Open
pderop opened this issue Jul 11, 2022 · 0 comments
Open

Stabilize HttpClientTest#testIssue1478 #2372

pderop opened this issue Jul 11, 2022 · 0 comments
Labels
type/enhancement A general enhancement
Milestone

Comments

@pderop
Copy link
Member

pderop commented Jul 11, 2022

This test is flaky and it is observed that it fails from time to time on the CI for versions 2.0.x

Observed exception:

HttpClientTest > testIssue1478() FAILED
    java.lang.AssertionError: expectation "expectNext(400)" failed (expected: onNext(400); actual: onError(reactor.netty.http.client.PrematureCloseException: Connection has been closed BEFORE response, while sending request body))
        at reactor.test.MessageFormatter.assertionError(MessageFormatter.java:115)
        at reactor.test.MessageFormatter.failPrefix(MessageFormatter.java:104)
        at reactor.test.MessageFormatter.fail(MessageFormatter.java:73)
        at reactor.test.MessageFormatter.failOptional(MessageFormatter.java:88)
        at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:509)
        at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:2288)
        at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1528)
        at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1476)
        at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:1129)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:172)
        at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
        at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
        at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:326)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:211)
        at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:471)
        at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:615)
        at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:585)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:336)
        at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1680)
        at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:192)
        at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
        at reactor.netty.http.client.HttpClientConnect$HttpObserver.onUncaughtException(HttpClientConnect.java:329)
        at reactor.netty.ReactorNetty$CompositeConnectionObserver.onUncaughtException(ReactorNetty.java:675)
        at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onUncaughtException(DefaultPooledConnectionProvider.java:207)
        at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onUncaughtException(DefaultPooledConnectionProvider.java:455)
        at reactor.netty.http.client.HttpClientOperations.onInboundClose(HttpClientOperations.java:265)
        at reactor.netty.channel.ChannelOperationsHandler.channelInactive(ChannelOperationsHandler.java:70)
        at io.netty5.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:284)
        at io.netty5.channel.DefaultChannelHandlerContext.findAndInvokeChannelInactive(DefaultChannelHandlerContext.java:278)
        at io.netty5.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:265)
        at io.netty5.channel.internal.DelegatingChannelHandlerContext.fireChannelInactive(DelegatingChannelHandlerContext.java:88)
        at io.netty5.channel.internal.DelegatingChannelHandlerContext.fireChannelInactive(DelegatingChannelHandlerContext.java:88)
        at io.netty5.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:283)
        at io.netty5.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:250)
        at io.netty5.handler.codec.http.HttpClientCodec$Decoder.channelInactive(HttpClientCodec.java:323)
        at io.netty5.channel.CombinedChannelDuplexHandler.channelInactive(CombinedChannelDuplexHandler.java:190)
        at io.netty5.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:284)
        at io.netty5.channel.DefaultChannelHandlerContext.findAndInvokeChannelInactive(DefaultChannelHandlerContext.java:278)
        at io.netty5.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:265)
        at io.netty5.channel.ChannelHandler.channelInactive(ChannelHandler.java:213)
        at io.netty5.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:284)
        at io.netty5.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:808)
        at io.netty5.channel.AbstractChannel.deregisterDone(AbstractChannel.java:716)
        at io.netty5.channel.AbstractChannel.lambda$deregister$8(AbstractChannel.java:705)
        at io.netty5.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:459)
        at io.netty5.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:441)
        at io.netty5.util.concurrent.DefaultPromise$NotifyListeners.run(DefaultPromise.java:422)
        at io.netty5.util.concurrent.SingleThreadEventExecutor.runTask(SingleThreadEventExecutor.java:338)
        at io.netty5.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:361)
        at io.netty5.channel.SingleThreadEventLoop.run(SingleThreadEventLoop.java:180)
        at io.netty5.util.concurrent.SingleThreadEventExecutor.lambda$doStartThread$4(SingleThreadEventExecutor.java:774)
        at io.netty5.util.internal.ThreadExecutorMap.lambda$apply$1(ThreadExecutorMap.java:68)
        at io.netty5.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:833)

See this CI error

@pderop pderop added type/enhancement A general enhancement status/need-triage A new issue that still need to be evaluated as a whole labels Jul 11, 2022
@pderop pderop added this to the 2.0.x Backlog milestone Jul 11, 2022
@pderop pderop assigned pderop and unassigned pderop Jul 11, 2022
@violetagg violetagg changed the title Stabilize HttpClientTest Stabilize HttpClientTest#testIssue1478 and PooledConnectionProviderDefaultMetricsTest#testConnectionPoolPendingAcquireSize Jul 11, 2022
@violetagg violetagg removed the status/need-triage A new issue that still need to be evaluated as a whole label Jul 11, 2022
@violetagg violetagg changed the title Stabilize HttpClientTest#testIssue1478 and PooledConnectionProviderDefaultMetricsTest#testConnectionPoolPendingAcquireSize Stabilize HttpClientTest#testIssue1478 Jul 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

2 participants