Skip to content

Conversation

@JinwooHwang
Copy link
Contributor

Problem

PulseSecurityWithSSLTest intermittently failed on GitHub Actions with authentication errors (BAD_CREDS) despite using correct credentials. Tests consistently passed locally but failed in CI where JMX/Management Service initialization is slower.

Root Cause: Race condition where authentication attempts occurred before ManagementService and MemberMXBean were fully initialized.

Solution

Added synchronization using GeodeAwaitility.await() to ensure ManagementService is ready before authentication:

ManagementService service = ManagementService.getExistingManagementService(locator.getLocator().getCache());
await().untilAsserted(() -> assertThat(service.getMemberMXBean()).isNotNull());

Applied to both test methods:

  • loginWithIncorrectAndThenCorrectPassword
  • loginWithDeprecatedSSLOptions

This matches the pattern already used in PulseSecurityIntegrationTest.

Testing

  • Both tests pass locally (27.7s total, 0 failures)
  • Code compiles and passes tests
  • No timing-dependent failures observed

Impact

  • Eliminates flaky test behavior in CI
  • Improves test reliability and developer experience
  • No functional changes to production code

For all changes, please confirm:

  • Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?
  • Has your PR been rebased against the latest commit within the target branch (typically develop)?
  • Is your initial contribution a single, squashed commit?
  • Does gradlew build run cleanly?
  • Have you written or updated unit tests to verify your changes?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Add multi-stage synchronization and retry logic with comprehensive debug logging
to diagnose authentication failures on GitHub Actions CI.

Changes:
1. Wait for ManagementService and MemberMXBean initialization
2. Wait for Pulse web application to respond
3. Retry login attempts until authentication backend is ready
4. Add detailed debug logging to track initialization sequence

This approach handles the JMX connection establishment delay that occurs
on slower CI runners, allowing authentication to succeed once the backend
is fully initialized.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant