-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Address increased build time RSS caused by certificate hot reload #39026
Conversation
This commit resolves an issue where the build time RSS increased after implementing the certificate hot reload feature. While the exact cause wasn't pinpointed, several potential culprits were addressed. These include removing the usage of the Mutiny API (regrettably), converting a record class to a regular class, and modifying a Java Stream API usage that relied on method references.
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.
LGTM. Let's see how the CI will go.
FYI the changes in the tests are not that important, as making a test bigger is OK. The most important thing is to not get the Quarkus core parts to increase the users' binaries in the end. So the key changes here are probably the ones in TlsCertificateReloader.java
Could you also please report the differences in the numbers reported in the json build output after this patch, like in #38919 (comment)?
Thanks @cescoffier!
Disclaimer: I'm not talking about these particular changes but about the general approach. While I agree we should be cautious and understand things when these thresholds go (significantly) red, I also think we shouldn't make our code more complicated just for the sake of it. Typically dropping usage of the Streams API when it's by far the best candidate would be a no no for me. And while I agree we should optimize things, I wouldn't want our code base to go back to Java 1.4 because it's better for native executables. I'm also not sure spending hours trying to rewrite things to make these thresholds happy is a good investment in the long run. Let's try to find the right balance here. |
+1 on what @gsmet said and that's what I tried to say with my FYI note in my review. However, it's hard to find that balance so we might need to come up with some guidelines, I will open a housekeeping(?) issue later today to track this. |
Status for workflow
|
Status | Name | Step | Failures | Logs | Raw logs | Build scan |
---|---|---|---|---|---|---|
✖ | JVM Tests - JDK 17 | Build |
Failures | Logs | Raw logs | 🚧 |
✖ | JVM Tests - JDK 21 | Build |
Failures | Logs | Raw logs | 🚧 |
✖ | MicroProfile TCKs Tests | Verify |
Failures | Logs | Raw logs | 🚧 |
Full information is available in the Build summary check run.
Failures
⚙️ JVM Tests - JDK 17 #
- Failing: integration-tests/narayana-lra
📦 integration-tests/narayana-lra
✖ org.acme.quickstart.lra.LRAParticipantTest.testLRA
line 63
- History
✖ org.acme.quickstart.lra.LRAParticipantTest.testLRAStartEnd
line 44
- History
⚙️ JVM Tests - JDK 21 #
- Failing: integration-tests/narayana-lra
📦 integration-tests/narayana-lra
✖ org.acme.quickstart.lra.LRAParticipantTest.testLRA
line 63
- History
✖ org.acme.quickstart.lra.LRAParticipantTest.testLRAStartEnd
line 44
- History
⚙️ MicroProfile TCKs Tests #
- Failing: tcks/microprofile-lra
📦 tcks/microprofile-lra
✖ org.eclipse.microprofile.lra.tck.TckCancelOnTests.cancelFromRemoteCall
line 160
- History
✖ org.eclipse.microprofile.lra.tck.TckCancelOnTests.cancelOn301
line 120
- History
✖ org.eclipse.microprofile.lra.tck.TckCancelOnTests.cancelOnFamily3xx
line 100
- History
✖ org.eclipse.microprofile.lra.tck.TckCancelOnTests.cancelOnFamilyDefault4xx
line 68
- History
✖ org.eclipse.microprofile.lra.tck.TckCancelOnTests.cancelOnFamilyDefault5xx
line 84
- History
✖ org.eclipse.microprofile.lra.tck.TckCancelOnTests.notCancelOnFamily5xx
line 140
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testAfterLRAEnlistmentDuringClosingPhase
line 297
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testAsync1Support
line 263
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testAsync2Support
line 272
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testAsync3Support
line 282
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testBasicContextPropagation
line 101
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testContextAfterRemoteCalls
line 258
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testForget
line 156
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testForgetCalledForNestedParticipantsWhenParentIsClosed
line 220
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testLeave
line 135
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testParentContextAvailable
line 190
- History
✖ org.eclipse.microprofile.lra.tck.TckContextTests.testStatus
line 112
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.mandatoryEndWithLRA
line 195
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.mandatoryEndWithLRAAtInterface
line 346
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.mandatoryEndWithLRAAtSuperclass
line 497
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.mandatoryWithLRA
line 118
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.mandatoryWithLRAAtInterface
line 269
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.mandatoryWithLRAAtSuperclass
line 420
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithEndLRA
line 231
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithEndLRAAtInterface
line 382
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithEndLRAAtSuperclass
line 533
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithInvalidLRA
line 160
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithInvalidLRAAtInterface
line 311
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithInvalidLRAAtSuperclass
line 462
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithLRA
line 154
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithLRAAtInterface
line 305
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.neverWithLRAAtSuperclass
line 456
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.notSupportedEndWithRA
line 219
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.notSupportedEndWithRAAtInterface
line 370
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.notSupportedEndWithRAAtSuperclass
line 521
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.notSupportedWithRA
line 142
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.notSupportedWithRAAtInterface
line 293
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.notSupportedWithRAAtSuperclass
line 444
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredEndWithLRA
line 171
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredEndWithLRAAtInterface
line 322
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredEndWithLRAAtSuperclass
line 473
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredEndWithoutLRA
line 177
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredEndWithoutLRAAtInterface
line 328
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredEndWithoutLRAAtSuperclass
line 479
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredWithLRA
line 94
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredWithLRAAtInterface
line 245
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredWithLRAAtSuperclass
line 396
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredWithoutLRA
line 100
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredWithoutLRAAtInterface
line 251
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiredWithoutLRAAtSuperclass
line 402
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresEndNewWithLRA
line 183
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresEndNewWithLRAAtInterface
line 334
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresEndNewWithLRAAtSuperclass
line 485
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresEndNewWithoutLRA
line 189
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresEndNewWithoutLRAAtInterface
line 340
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresEndNewWithoutLRAAtSuperclass
line 491
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresNewWithLRA
line 106
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresNewWithLRAAtInterface
line 257
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresNewWithLRAAtSuperclass
line 408
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresNewWithoutLRA
line 112
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresNewWithoutLRAAtInterface
line 263
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.requiresNewWithoutLRAAtSuperclass
line 414
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.supportsEndWithLRA
line 207
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.supportsEndWithLRAAtInterface
line 358
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.supportsEndWithLRAAtSuperclass
line 509
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.supportsWithLRA
line 130
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.supportsWithLRAAtInterface
line 281
- History
✖ org.eclipse.microprofile.lra.tck.TckLRATypeTests.supportsWithLRAAtSuperclass
line 432
- History
✖ org.eclipse.microprofile.lra.tck.TckParticipantTests.cancelLraDuringBusinessMethod
line 189
- History
✖ org.eclipse.microprofile.lra.tck.TckParticipantTests.testNonJaxRsCompletionStageResponseAndParticipantStatus
line 169
- History
✖ org.eclipse.microprofile.lra.tck.TckParticipantTests.testNonJaxRsCompletionStageVoid
line 143
- History
✖ org.eclipse.microprofile.lra.tck.TckParticipantTests.validSignaturesChainTest
line 115
- History
✖ org.eclipse.microprofile.lra.tck.TckParticipantTests.validWebApplicationExceptionReturnedTest
line 81
- History
✖ org.eclipse.microprofile.lra.tck.TckRecoveryTests.testCancelWhenParticipantIsRestarted
line 128
- History
✖ org.eclipse.microprofile.lra.tck.TckRecoveryTests.testCancelWhenParticipantIsUnavailable
line 168
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.acceptCancelTest
line 375
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.acceptCloseTest
line 370
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.cancelLRA
line 98
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.closeLRA
line 118
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.compensateMultiLevelNestedActivity
line 173
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.completeMultiLevelNestedActivity
line 168
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.dependentLRA
line 302
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.join
line 211
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.joinLRAViaHeader
line 183
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.joinWithOneResourceDifferentMethodTwiceWithCancel
line 462
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.joinWithOneResourceDifferentMethodTwiceWithClose
line 482
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.joinWithOneResourceSameMethodTwiceWithCancel
line 452
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.joinWithOneResourceSameMethodTwiceWithClose
line 472
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.joinWithTwoResourcesWithCancel
line 501
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.joinWithTwoResourcesWithClose
line 492
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.leaveLRA
line 268
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.mixedMultiLevelNestedActivity
line 178
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.nestedActivity
line 128
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.noLRATest
line 422
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.testAfterLRAListener
line 250
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.testAfterLRAParticipant
line 229
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.timeLimit
line 322
- History
✖ org.eclipse.microprofile.lra.tck.TckTests.timeLimitWithPreConditionFailed
line 361
- History
✖ org.eclipse.microprofile.lra.tck.TckUnknownStatusTests.compensate_retry
line 65
- History
✖ org.eclipse.microprofile.lra.tck.TckUnknownStatusTests.complete_retry
line 79
- History
✖ org.eclipse.microprofile.lra.tck.TckUnknownTests.compensate_immediate
line 74
- History
✖ org.eclipse.microprofile.lra.tck.TckUnknownTests.compensate_retry
line 86
- History
✖ org.eclipse.microprofile.lra.tck.TckUnknownTests.complete_immediate
line 99
- History
✖ org.eclipse.microprofile.lra.tck.TckUnknownTests.complete_retry
line 111
- History
@mmusgrov @marcosgopen I'm not sure what's going on with LRA but all our tests are going red with timeouts. I think we are using the See:
|
@gsmet I'm also seeing: Caused by: com.arjuna.ats.arjuna.exceptions.ObjectStoreException: ARJUNA012225: FileSystemStore::setupStore - cannot access root of object store: /deployments/ObjectStore/ShadowNoFileLockStore/defaultStore/ |
About the PR itself, the code is ok - it's unfortunate but maintainable. |
This PR resolves an issue where the build time RSS increased after implementing the certificate hot reload feature. While the exact cause wasn't pinpointed, several potential culprits were addressed. These include removing the usage of the Mutiny API (regrettably), converting a record class to a regular class, and modifying a Java Stream API usage that relied on method references.
Fix #38919.