-
Notifications
You must be signed in to change notification settings - Fork 114
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
Add FLAKY_TEST_SECTION_RESET and use it to reset FCM in between flakes. #1201
Open
jonsimantov
wants to merge
18
commits into
main
Choose a base branch
from
messaging-gettoken-flake
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github-actions
bot
added
the
tests: in-progress
This PR's integration tests are in progress.
label
Feb 2, 2023
Integration test with FLAKINESS (succeeded after retry)Requested by @jonsimantov on commit refs/pull/1201/merge
Add flaky tests to go/fpl-cpp-flake-tracker |
github-actions
bot
added
tests: failed
This PR's integration tests failed.
and removed
tests: failed
This PR's integration tests failed.
labels
Feb 2, 2023
jonsimantov
commented
Feb 2, 2023
firebase-workflow-trigger
bot
removed
the
tests: in-progress
This PR's integration tests are in progress.
label
Feb 2, 2023
github-actions
bot
added
tests: in-progress
This PR's integration tests are in progress.
tests: failed
This PR's integration tests failed.
and removed
tests: failed
This PR's integration tests failed.
labels
Feb 2, 2023
github-actions
bot
added
the
tests: succeeded
This PR's integration tests succeeded.
label
Feb 2, 2023
firebase-workflow-trigger
bot
removed
the
tests: in-progress
This PR's integration tests are in progress.
label
Feb 2, 2023
github-actions
bot
added
tests: in-progress
This PR's integration tests are in progress.
and removed
tests: succeeded
This PR's integration tests succeeded.
labels
Feb 2, 2023
github-actions
bot
added
the
tests: succeeded
This PR's integration tests succeeded.
label
Feb 2, 2023
firebase-workflow-trigger
bot
removed
the
tests: in-progress
This PR's integration tests are in progress.
label
Feb 2, 2023
github-actions
bot
added
tests: in-progress
This PR's integration tests are in progress.
tests: succeeded
This PR's integration tests succeeded.
and removed
tests: succeeded
This PR's integration tests succeeded.
labels
Feb 2, 2023
firebase-workflow-trigger
bot
removed
the
tests: in-progress
This PR's integration tests are in progress.
label
Feb 2, 2023
github-actions
bot
added
tests: in-progress
This PR's integration tests are in progress.
and removed
tests: succeeded
This PR's integration tests succeeded.
labels
Feb 2, 2023
jonsimantov
added
skip-release-notes
Skip release notes check
and removed
no-lint
Skip lint checks
labels
Feb 2, 2023
github-actions
bot
added
the
tests: succeeded
This PR's integration tests succeeded.
label
Feb 2, 2023
firebase-workflow-trigger
bot
removed
the
tests: in-progress
This PR's integration tests are in progress.
label
Feb 2, 2023
github-actions
bot
added
tests: in-progress
This PR's integration tests are in progress.
tests: succeeded
This PR's integration tests succeeded.
and removed
tests: succeeded
This PR's integration tests succeeded.
labels
Feb 2, 2023
firebase-workflow-trigger
bot
removed
the
tests: in-progress
This PR's integration tests are in progress.
label
Feb 2, 2023
jonsimantov
removed
tests: succeeded
This PR's integration tests succeeded.
tests: failed
This PR's integration tests failed.
labels
Feb 3, 2023
…older message and consume it.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When GetToken fails, it seems like it will usually keep failing unless FCM is reinitialized. This change allows us to reinitialize FCM between attempts, to try to get GetToken to get a token.
This change adds an extra flaky test macro, FLAKY_TEST_SECTION_RESET, that can be put in the middle of a FLAKY_TEST_SECTION_BEGIN and ..._END pair. If there is a FLAKY_TEST_SECTION_RESET, this code will be run after each flaky failure, before the retry, and can be used to reset or reinitialize things before the test runs again.
(Unfortunately, this doesn't seem to 100% fix the problem in TestReceiveToken, which may be caused by an underlying issue with the SDK. Here is an example of it still being broken. 🙁)
It does seem to fix the issues with SendMessageToToken and SendMessageToTopic. However, when retrying SendMessageToToken, we can get into a situation where it receives the message from the previous attempt; add some logic to recognize this situation and consume the extra message. (Here is a test run where this occurred before this fix.)
Testing
Will run the Android integration tests a few times and analyze the logs to see if the flaky test triggers and if the reinitialize helps.
Type of Change
Place an
x
the applicable box:Notes
Release Notes
section ofrelease_build_files/readme.md
.