-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Basic Django config files break upgrading from 4.4.6 to 4.4.7 #6285
Comments
4.4.7 broke my django site. Just reverted to 4.4.6. Did not investigate further but jobs were not being processed. Assume it is related to this issue. |
Another confirmation for this issue. Django3 project stoped being able to connect by ignoring settings. |
Same issue for me (no Django, but settings was ignored as well). |
Same here. Reverting back to 4.4.6 |
@auvipy Please address this. |
The symptom in my case is that messages are received, but rejected because the called task is not registered. But yes, 4.4.6 resolves this. |
The pre 4.0 style config doesn't seem to be supported any more in 4.4.7, despite the docs saying otherwise. We also reverted. |
confirmed, but not with django. if i have env vars set in my shell, then run |
Same here. Whenever I add |
I dont think so but will look into it on next Monday Hopefully. |
Try to check the commit logs to see which commit could cause the apparent regression |
There is an issue with Celery setting the BROKER_URL variable and instead uses the default ampq broker URL. This causes problems with running Celery so we'll delay upgrading it for now. See celery/celery#6285 for context.
As a starting point, perhaps #6223 is somehow related? Looking at the changelog from 4.4.6 -> 4.4.7 this is the one change that is related to argument parsing. This totally a guess on my part but it seems like a good place to start at least. |
There is an issue with Celery setting the BROKER_URL variable and instead uses the default ampq broker URL. This causes problems with running Celery so we'll delay upgrading it for now. See celery/celery#6285 for context.
Unable to start as per other reports. After reverting to Celery 4.4.6:
With Celery 4.4.7:
And from the broker log file:
Note that it is trying to use the In case it is relevant, this is what our command line looks like according to "ps":
and according to systemd:
|
commit log celery/py-amqp@9e9f4c0 |
I too have a similar problem but I also noticed something I did not see posted here about this issue. When starting the multi worker I can see this running for example: This was supposed to also contain the With 4.4.7 the entire Django settings are completely ignored which is also why it is trying to connect as guest to the amqp server. I believe it may have something to do with this recent patch #6223 |
@JulienPalard would you mind checking this? |
I have also had to revert to 4.4.6 on some projects using django with the redis broker. Oddly, there are no logs from celery on the projects when using 4.4.7 so I cannot be more specific other than all works well under 4.4.6. |
if you can provide an integration test with a failing unit test it would be easier to find a fix rather then reverting that fix |
See PR #6305 I took a deeper look into the situation. The problem seems to arise from the following sequence of events: The behavior of The actual implementation of Sorry for not actually providing a fix but I feel a bit lost in the huge code base. If other commands than The regression test that I provided in #6305 just checks if the parameter still ends up in run_from_argv of the This behavior seems to be also the origin of #6287. The argument parser in Additionally, adding a |
thanks a lot for the test and te detail observation. someone will provide a fix for sure. |
Thanks for the workaround. This fixes the issue for me after upgrading from 4.4.6 to 4.4.7. |
I agree.
Which is not a big deal. #4558 can be reopened. I don't think there's a clean fix: Celery argument parsing is just too complicated and does not have enough tests. I think the sane way is to deprecate odd usages (like giving subcommands arguments before subcommands), which will break a lot of things. |
The command line processing is broken in Celery 4.4.7 release, see celery/celery#6285 Fixes #4445
I suggest that the correct way to handle both #4558 while not causing this regression is separate the handling of global options from command-specific options. The standard
while also doing this:
This suggests that simply by getting rid of the attempt to reorder options to after the verb would work just fine, provided the global options are set up first, and the commands handled using subparsers. OTOH, I have no idea if/how that might be made to work while using |
@auvipy Any updates? |
It is a regression, I know which commit cause this but still not getting time to revert that & create a new release |
It looks like 4.4.7 has some issues with Redis broker: celery/celery#6285
It looks like 4.4.7 has some issues with Redis broker: celery/celery#6285
This is not a Django issue. As reported in #6370 it is reproducible with a 25-line module with no dependencies. It may be helpful to create a pinned issue marking 4.4.7 as a bad release. This is a regression that truly breaks Celery and makes it unusable. |
Celery v4.4.7 introduced a regression in setting of configuration options which still seems to exist in v5.0.0. See celery/celery#6285 and others.
In my case, it also fixed it but only after removing the parameter |
Does this Issue affects only 4.4.7 or also all versions above (Including 5.0+)? |
@mensachan according to #6370 (comment), this issue isn't present in 5.0.2+. (I haven't verified that, though.) |
the issues doesn't exist in celery v5 as the CLI was completely rewritten. |
The basic tutorial setup outlined here: https://docs.celeryproject.org/en/latest/django/first-steps-with-django.html now fails to locate set the
broker
orCELERY_BROKER_URL
parameter. Celery just ignores the settings and defaults to searching for a host atamqp://guest:**@127.0.0.1:5672//:
, which is not my host of choice.I'm ignoring the issues template because this is a very basic regression that the last committor can fix quickly.
The text was updated successfully, but these errors were encountered: