-
Notifications
You must be signed in to change notification settings - Fork 180
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
Explicitly handle timeouts when syncing channels #9344
base: master
Are you sure you want to change the base?
Explicitly handle timeouts when syncing channels #9344
Conversation
👋 Hello! Thanks for contributing to our project. If you are unsure the failing tests are related to your code, you can check the "reference jobs". These are jobs that run on a scheduled time with code from master. If they fail for the same reason as your build, it means the tests or the infrastructure are broken. If they do not fail, but yours do, it means it is related to your code. Reference tests: KNOWN ISSUES Sometimes the build can fail when pulling new jar files from download.opensuse.org . This is a known limitation. Given this happens rarely, when it does, all you need to do is rerun the test. Sorry for the inconvenience. For more tips on troubleshooting, see the troubleshooting guide. Happy hacking! |
Be careful with rising an error. We don't want to rise error if no repository is declared or no package is in the repository. |
Probably having no packages to sync is more an exception than a normal case. We could have an enable disable option to check fail on reposync. By digging into the CHANNEL_TO_SYNC_BY_OS_PRODUCT_VERSION, I can see some channel are not correct. |
Will this case result in an error being raised ? |
rescue Timeout::Error => e | ||
log e.message | ||
raise ScriptError, "Timeout occured while syncing channel: #{channel}" |
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.
Why we need this begin statement catching StandardError
and Timeout
while in fact that's already addressed as part of repeat_until_timeout
function?
I think we are duplicating the error handling logic on that step definition.
See this:
https://github.com/NamelessOne91/uyuni/blob/master/testsuite/features/support/commonlib.rb#L121-L126
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.
Right, we can probably remove the error handling from the caller and just pass $build_validation
as dont_raise
, if we intend to suppress errors
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.
Exactly.
What does this PR change?
Related to https://github.com/SUSE/spacewalk/issues/25102
This PR forces failures in the case of an explicit Timeout Error when trying to sync existing repositories.
Cases in which a repository does not exist should still be handled by the StandardError branch
GUI diff
No difference.
Documentation
No documentation needed: only internal and user invisible changes
DONE
Test coverage
Cucumber tests were modified
DONE
Links
Issue(s): # https://github.com/SUSE/spacewalk/issues/25102
Port(s):
5.0
4.3 (?)
DONE
Changelogs
If you uncheck the checkbox after the PR is created, you will need to re-run
changelog_test
(see below)Re-run a test
If you need to re-run a test, please mark the related checkbox, it will be unchecked automatically once it has re-run:
Before you merge
Check How to branch and merge properly!