-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Fix OverflowError on Celery worker #3899
Fix OverflowError on Celery worker #3899
Conversation
4872fa0
to
f6cae5a
Compare
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.
Looks good, thanks @guyco33.
One last thing - should_schedule_next
has a pretty elaborate test suite, and I believe this case should be covered there as well. Can you add a test for this?
f6cae5a
to
6c1769a
Compare
@@ -130,7 +130,7 @@ def test_backoff(self): | |||
failures=5)) | |||
self.assertFalse(models.should_schedule_next(two_hours_ago, now, | |||
"3600", failures=10)) | |||
|
|||
self.assertFalse(models.should_schedule_next(two_hours_ago, now, "3600", failures=32)) |
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.
@guyco33 sorry for being a pain in the ass about this, but I'm a firm believer in one assert per test, and specifically, one logical assert per test.
The two assertions above the one you added are kind of related - they test the flip side of the same conditional, and belong in the same test (although this is debatable). The assertion you added feels like it tests a different concept, and I believe it should be separated.
Also - in the absence self-explanatory code, it's the tests' job to provide documentation, and just asserting "false" when failures=32 feels like a magic number with magic behavior. A dedicated test, with an explanatory test name, would really help here.
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.
@rauchy I totally agree with you, especially when the tests cover special behaviour of magic numbers and unique corner cases.
I will pick a proper name for a new assertion and will update the PR accordingly
6c1769a
to
c8f0927
Compare
Test summaryRun details
View run in Cypress Dashboard ➡️ This comment has been generated by cypress-bot as a result of your project's GitHub integration settings. You can manage this integration in your project's settings in the Cypress Dashboard |
Thanks @guyco33! |
What type of PR is this? (check all applicable)
Description
next_iteration += datetime.timedelta(minutes=2**failures)
start failing when number of failures is larger then 31 and celery worker stops refreshing queries