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

[Merged by Bors] - hare3: simpify and deflake synchronization in cluster tests #5033

Closed

Conversation

dshulyak
Copy link
Contributor

@dshulyak dshulyak commented Sep 19, 2023

closes: #4990

there are 2 important events that needs to be in sync:

  1. walltime.Sub(t.clock.Now()) needs to be called after call to Advance in tests
  2. Advance needs to be called after all eligible messages were processed

1st synchronization point is realized by waiting on computing vrf. code calls Advance, and waits for read on eligibility channel. note that event is submitted even if eligibility is nil.
2nd synchronization point is realized by waiting until message is processed by all nodes in the cluster. code calls Publish, when Publish exists message was delivered and processed by every node. so when read on sent channel is received we know that all messages were processed.

@dshulyak dshulyak changed the title hare3: simpify synchronization for integration tests hare3: simpify and deflake synchronization for integration tests Sep 19, 2023
@codecov
Copy link

codecov bot commented Sep 19, 2023

Codecov Report

Merging #5033 (e319b08) into develop (27c3dd7) will decrease coverage by 0.1%.
The diff coverage is 80.0%.

@@            Coverage Diff            @@
##           develop   #5033     +/-   ##
=========================================
- Coverage     77.0%   77.0%   -0.1%     
=========================================
  Files          257     257             
  Lines        30242   30236      -6     
=========================================
- Hits         23314   23308      -6     
- Misses        5401    5402      +1     
+ Partials      1527    1526      -1     
Files Changed Coverage Δ
hare3/hare.go 83.5% <80.0%> (-0.3%) ⬇️

... and 3 files with indirect coverage changes

@dshulyak dshulyak force-pushed the hare3/simplify-synchronization branch from a0793c5 to 1476d8f Compare September 19, 2023 10:14
@dshulyak dshulyak changed the title hare3: simpify and deflake synchronization for integration tests hare3: simpify and deflake synchronization in cluster tests Sep 19, 2023
@dshulyak dshulyak marked this pull request as ready for review September 19, 2023 10:27
@dshulyak
Copy link
Contributor Author

dshulyak commented Sep 19, 2023

i didn't observe any failures during the day. will merge and see if i missed something

@dshulyak
Copy link
Contributor Author

bors merge

bors bot pushed a commit that referenced this pull request Sep 19, 2023
closes: #4990

there are 2 important events that needs to be in sync:
1. walltime.Sub(t.clock.Now()) needs to be called after call to Advance in tests
2. Advance needs to be called after all eligible messages were processed

1st synchronization point is realized by waiting on computing vrf. code calls Advance, and waits for read on eligibility channel. note that event is submitted even if eligibility is nil.
2nd synchronization point is realized by waiting until message is processed by all nodes in the cluster. code calls Publish, when Publish exists message was delivered and processed by every node. so when read on sent channel is received we know that all messages were processed.
@bors
Copy link

bors bot commented Sep 19, 2023

Build failed:

@fasmat
Copy link
Member

fasmat commented Sep 19, 2023

known flaky test #4171

bors merge

bors bot pushed a commit that referenced this pull request Sep 19, 2023
closes: #4990

there are 2 important events that needs to be in sync:
1. walltime.Sub(t.clock.Now()) needs to be called after call to Advance in tests
2. Advance needs to be called after all eligible messages were processed

1st synchronization point is realized by waiting on computing vrf. code calls Advance, and waits for read on eligibility channel. note that event is submitted even if eligibility is nil.
2nd synchronization point is realized by waiting until message is processed by all nodes in the cluster. code calls Publish, when Publish exists message was delivered and processed by every node. so when read on sent channel is received we know that all messages were processed.
@bors
Copy link

bors bot commented Sep 19, 2023

Build failed:

@fasmat
Copy link
Member

fasmat commented Sep 19, 2023

known flaky test TestAccountMeshDataStream_comprehensive: #4171

bors merge

bors bot pushed a commit that referenced this pull request Sep 19, 2023
closes: #4990

there are 2 important events that needs to be in sync:
1. walltime.Sub(t.clock.Now()) needs to be called after call to Advance in tests
2. Advance needs to be called after all eligible messages were processed

1st synchronization point is realized by waiting on computing vrf. code calls Advance, and waits for read on eligibility channel. note that event is submitted even if eligibility is nil.
2nd synchronization point is realized by waiting until message is processed by all nodes in the cluster. code calls Publish, when Publish exists message was delivered and processed by every node. so when read on sent channel is received we know that all messages were processed.
@bors
Copy link

bors bot commented Sep 19, 2023

Pull request successfully merged into develop.

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot changed the title hare3: simpify and deflake synchronization in cluster tests [Merged by Bors] - hare3: simpify and deflake synchronization in cluster tests Sep 19, 2023
@bors bors bot closed this Sep 19, 2023
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.

Flaky hare3 TestIterationLimit
2 participants