-
-
Notifications
You must be signed in to change notification settings - Fork 944
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
Issue #1019 Fix redis transport socket timeout #1113
Conversation
can you check the failing test? |
E AssertionError: ('', (10, ), {}) not all found in call list /opt/python/3.6.7/lib/python3.6/unittest/mock.py:860: AssertionError |
Thanks. Looking into it... |
Codecov Report
@@ Coverage Diff @@
## master #1113 +/- ##
==========================================
- Coverage 88.5% 88.44% -0.07%
==========================================
Files 64 64
Lines 6716 6723 +7
Branches 811 814 +3
==========================================
+ Hits 5944 5946 +2
- Misses 677 682 +5
Partials 95 95
Continue to review full report at Codecov.
|
raise AssertionError(
E AssertionError: rpush('george', '{"body": "BODY2", "headers": {"redelivered": true, "x-funny": 1}}') call not found on python 3.5, I have restarted that build, let's check that again |
Great, thanks. That one doesn't look related. Stepping through the code, I don't see where it overlaps with these changes. |
Good call. Bumped to |
Can we have a release for this beauty please? |
Have an update: it seems to have mostly fixed it but I am still getting some occasional broken pipes, so we are not out of the woods yet. It is greatly reduced, though, at least on my workload. I think the 30 timeout might be too high, and we might want 20-25 per @andymccurdy recommendation over on redis-py. Seems like the best solution is to make the configurable |
The |
new kombu and celery RC release is due in next 2/3 days |
Any news? |
I tried using the latest package it didn't seem to reduce error rate for me in the production. I tried to investigate it. With the health check enabled, it should be sending the PING call to the server to get PONG reply.
^but I don't get expected output from it after every 30 seconds. So, for me health checks ain't really working. I checked this PR and found that we are calling check_health on the client. In redis-py's code, So, I think we also need to set Also I cannot pass kombu/kombu/transport/redis.py Line 895 in 8276480
I believe kombu should allow passing params to the underlying transport blindly but may be there were reasons why it wasn't done in that way. Anyway, I guess for the time being, I'll try to do monkey-patching. |
did you try celery==4.4.0rc4? |
@auvipy So you mean we are passing I think I did try it but still let me check once again. Edit: Quick search in celery doesn't show any results : https://github.com/celery/celery/search?q=health_check_interval but anyway I'll try to use celery 4.4.0rc4. |
Alright I just tried using By setting |
are you up for any fix as PR? |
Hm, sure. |
Patch from @jschwartzentruber #1019 (comment)
Fixes #1019
Wanted to get the ball rolling.
I've got my branch running in a staging environment and can report that it is working well for me. Let me know if there's anything else I can do to help. cc: @thedrow