Skip to content

fix: removing Thread.sleep() from KubernetesReconcilerCreatorTest - #4915

Open
sarveshkaushal wants to merge 1 commit into
kubernetes-client:masterfrom
sarveshkaushal:sarveshkaushal/flaky-test-k8reconciler-clean
Open

sarveshkaushal wants to merge 1 commit into
kubernetes-client:masterfrom
sarveshkaushal:sarveshkaushal/flaky-test-k8reconciler-clean

Conversation

@sarveshkaushal

@sarveshkaushal sarveshkaushal commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

Notes

Replaces the fixed Thread.sleep() in KubernetesReconcilerCreatorTest with semaphore based synchronization.

The custom work-queue key function releases a semaphore after adding the generated request to the controller work queue. The test waits for that signal before asserting on the queue.

This is related to issue #1223

Testing

Ran mvn install on the project root.

@kubernetes-prow kubernetes-prow Bot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 18, 2026
@sarveshkaushal

Copy link
Copy Markdown
Contributor Author

/assign @brendandburns

@brendandburns

Copy link
Copy Markdown
Contributor

As with the other ones, please try to minimize the diff for easier reviewing.

@sarveshkaushal

Copy link
Copy Markdown
Contributor Author

@brendandburns - Formatting changes in this are expected as I have enclosed the code in try block. I have fixed the formatting changes in other PRs.

@kubernetes-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: sarveshkaushal
Once this PR has been reviewed and has the lgtm label, please ask for approval from brendandburns. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@SpringBootTest(classes = {KubernetesReconcilerCreatorTest.App.class})
class KubernetesReconcilerCreatorTest {

private static final Semaphore REQUEST_ENQUEUED = new Semaphore(0);

@brendandburns brendandburns Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't use globals that aren't constants in the test since it makes it impossible to run tests in parallel in the same JVM.

@brendandburns

Copy link
Copy Markdown
Contributor

This change looks ok, except for the global Semaphore part, please switch that to be a test local semaphore instead. Also not sure why you added the shutdown (and thus the try/catch) it's not necessarily bad, but I'm not sure its needed.

@sarveshkaushal
sarveshkaushal force-pushed the sarveshkaushal/flaky-test-k8reconciler-clean branch from 11235db to 669e4ae Compare October 7, 2026 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants