-
Notifications
You must be signed in to change notification settings - Fork 922
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
Fix flaky MultipartEncoderTckTest.required_spec101...
#5136
Conversation
Motivation: `MultipartEncoderTckTest.required_spec101_XXX` fails quite often. https://ge.armeria.dev/scans/tests?search.timeZoneId=Asia/Seoul&tests.container=com.linecorp.armeria.common.multipart.MultipartEncoderTckTest&tests.test=required_spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements ```java java.lang.AssertionError: Publisher com.linecorp.armeria.common.multipart.MultipartEncoder@3eec8583 produced no element after first `request` within 200 ms at org.testng.Assert.fail(Assert.java:98) at org.reactivestreams.tck.TestEnvironment.flopAndFail(TestEnvironment.java:285) at org.reactivestreams.tck.TestEnvironment$Receptacle.next(TestEnvironment.java:1047) at org.reactivestreams.tck.TestEnvironment$ManualSubscriber.nextElement(TestEnvironment.java:514) at org.reactivestreams.tck.TestEnvironment$ManualSubscriber.nextElement(TestEnvironment.java:510) at org.reactivestreams.tck.PublisherVerification$3.run(PublisherVerification.java:212) at org.reactivestreams.tck.PublisherVerification.activePublisherTest(PublisherVerification.java:1135) at org.reactivestreams.tck.PublisherVerification.required_spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements(PublisherVerification.java:204) ``` The failure couldn't be reproduced locally. I checked the log on the Gradle scan and it shows that the classes are initialized when the test starts. I guess JVM initalization and the Netty worker group intialization could affect the failure. Modifications: - Early initialze Netty worker group before starting the tests - Increase timeout Result: - Closes line#4554
Codecov ReportPatch coverage has no change and project coverage change:
Additional details and impacted files@@ Coverage Diff @@
## main #5136 +/- ##
============================================
- Coverage 74.23% 74.22% -0.02%
+ Complexity 19811 19807 -4
============================================
Files 1698 1698
Lines 73093 73093
Branches 9359 9359
============================================
- Hits 54264 54256 -8
- Misses 14395 14404 +9
+ Partials 4434 4433 -1 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Happy with the changes if the CI passes 👍 👍 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
* Update snapshot version to 1.25.1 (line#5137) * Include logback12 from logback module (line#5139) Motivation: @ikhoon pointed out that the `logback` module doesn't bring in the `logback12` module in the pom. Modifications: - Modified so that the `logback` module correctly declares the dependency. Result: - `logback` module contains the correct dependencies - Describe the consequences that a user will face after this PR is merged. <!-- Visit this URL to learn more about how to write a pull request description: https://armeria.dev/community/developer-guide#how-to-write-pull-request-description --> * Release note for 1.25.1 (line#5140) ![FireShot Capture 011 - 1 25 1 release notes — Armeria release notes - localhost](https://github.com/line/armeria/assets/8510579/b480ecaf-4034-453a-be93-58f865cad5b2) * Fix flaky `MultipartEncoderTckTest.required_spec101...` (line#5136) Motivation: `MultipartEncoderTckTest.required_spec101_XXX` fails quite often. https://ge.armeria.dev/scans/tests?search.timeZoneId=Asia/Seoul&tests.container=com.linecorp.armeria.common.multipart.MultipartEncoderTckTest&tests.test=required_spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements ```java java.lang.AssertionError: Publisher com.linecorp.armeria.common.multipart.MultipartEncoder@3eec8583 produced no element after first `request` within 200 ms at org.testng.Assert.fail(Assert.java:98) at org.reactivestreams.tck.TestEnvironment.flopAndFail(TestEnvironment.java:285) at org.reactivestreams.tck.TestEnvironment$Receptacle.next(TestEnvironment.java:1047) at org.reactivestreams.tck.TestEnvironment$ManualSubscriber.nextElement(TestEnvironment.java:514) at org.reactivestreams.tck.TestEnvironment$ManualSubscriber.nextElement(TestEnvironment.java:510) at org.reactivestreams.tck.PublisherVerification$3.run(PublisherVerification.java:212) at org.reactivestreams.tck.PublisherVerification.activePublisherTest(PublisherVerification.java:1135) at org.reactivestreams.tck.PublisherVerification.required_spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements(PublisherVerification.java:204) ``` The failure couldn't be reproduced locally. I checked the log on the Gradle scan and it shows that the classes are initialized when the test starts. I guess JVM lazy class initialization and the Netty worker group initialization could affect the failure. Modifications: - Early initialize Netty worker group before starting the tests - Increase timeout Result: - Closes line#4554 --------- Co-authored-by: Trustin Lee <[email protected]> * modify run for local repo experiment --------- Co-authored-by: Ikhun Um <[email protected]> Co-authored-by: Trustin Lee <[email protected]>
Motivation:
MultipartEncoderTckTest.required_spec101_XXX
fails quite often.https://ge.armeria.dev/scans/tests?search.timeZoneId=Asia/Seoul&tests.container=com.linecorp.armeria.common.multipart.MultipartEncoderTckTest&tests.test=required_spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements
The failure couldn't be reproduced locally. I checked the log on the Gradle scan and it shows that the classes are initialized when the test starts.
I guess JVM lazy class initialization and the Netty worker group initialization could affect the failure.
Modifications:
Result:
com.linecorp.armeria.common.multipart.MultipartEncoderTckTest.required_spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements
#4554