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

Itermittent timeout on blocking read errors #264

Closed
philwebb opened this issue Jan 19, 2018 · 3 comments
Closed

Itermittent timeout on blocking read errors #264

philwebb opened this issue Jan 19, 2018 · 3 comments
Labels
type/bug A general bug
Milestone

Comments

@philwebb
Copy link

We're seeing tests regularly fail on Spring Boot CI due to timeout issues. Here's one example.

[ERROR] eventsWithDateAfter[Reactive](org.springframework.boot.actuate.audit.AuditEventsEndpointWebIntegrationTests)  Time elapsed: 360.013 s  <<< ERROR!
java.lang.IllegalStateException: Timeout on blocking read for 360000 MILLISECONDS
	at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:110)
	at reactor.core.publisher.Mono.block(Mono.java:1185)
	at org.springframework.test.web.reactive.server.DefaultWebTestClient$DefaultRequestBodyUriSpec.toResponseSpec(DefaultWebTestClient.java:293)
	at org.springframework.test.web.reactive.server.DefaultWebTestClient$DefaultRequestBodyUriSpec.exchange(DefaultWebTestClient.java:271)
	at org.springframework.boot.actuate.audit.AuditEventsEndpointWebIntegrationTests.eventsWithDateAfter(AuditEventsEndpointWebIntegrationTests.java:55)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.springframework.boot.actuate.endpoint.web.test.AbstractWebEndpointRunner$3.evaluate(AbstractWebEndpointRunner.java:114)
	at org.springframework.boot.actuate.endpoint.web.test.AbstractWebEndpointRunner$4.evaluate(AbstractWebEndpointRunner.java:129)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.springframework.boot.actuate.endpoint.web.test.AbstractWebEndpointRunner$1.evaluate(AbstractWebEndpointRunner.java:81)
	at org.springframework.boot.actuate.endpoint.web.test.AbstractWebEndpointRunner$2.evaluate(AbstractWebEndpointRunner.java:95)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:369)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)

[INFO] Running org.springframework.boot.actuate.audit.AuditEventsJmxEndpointExtensionTests

There's a lot of discussion on spring-projects/spring-boot#10569 but I think this is probably a reactor-netty issue so should be reported here.

@smaldini
Copy link
Contributor

smaldini commented Jan 20, 2018

The commit be41032 is tentative fix - @wilkinsona unfortunately didn't confirm it. We don't have a reproductible scenario yet, have you got a chance to run a few test builds ?

@smaldini smaldini added this to the 0.7.3.RELEASE milestone Jan 20, 2018
@wilkinsona
Copy link

Boot's CI ran pretty happily over the weekend. In 20 builds we haven't seen a repeat of the timeout. I don't think we're quite ready to declare victory but it's looking hopeful.

smaldini pushed a commit that referenced this issue Jan 22, 2018
@smaldini
Copy link
Contributor

fixed by 23fff56 && e032fca

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/bug A general bug
Projects
None yet
Development

No branches or pull requests

3 participants