-
Notifications
You must be signed in to change notification settings - Fork 14.2k
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
"cannot import make_kwargs_callable" occurs when using airflow.providers.http.operators.http in 1.10.14. #15198
Comments
Thanks for opening your first issue here! Be sure to follow the issue template! |
This is an issue for me too. It's a blocker for migration to Airflow 2.
|
Sorry, but we have already given up releasing new updates for backport providers. This operator didn't have major breaking changes though, so you can keep the import to the airflow.operators package on Airflow 2.0. |
to jump in... i don't think it's issue of major or minor changes. It's issue of changes existed. As suggested you can cherry pick the updated Can you at least explore this before dismissing it completely? |
@mik-laj Thank you for confirming this. As for SimpleHttpOperator, I will try to upgrade it to 2.0.x without changing the import source.
|
There have been drastic differences between the Airflow 2.0 and Airflow 1.10 releases, and cherry-picking changes are very problematic and time-consuming e.g. Airflow 1.10 still supports Python 2.7, so we need to add backward compatibility during cherry-picking. Besides, we haven't made any changes to operators for over a year now, because we started releasing backport providers, to make migrations to Airflow 2.0 a bit easier, but also so that project maintainers don't have to cherry-pick any operators related code. If we wanted to release a fix for this bug, we would therefore have to release it as backport providers. The code from the backport providers has already been removed so we would have to start creating a separate branch that would only contain the one fix. Based on this one branch, we had to prepare a new release of backport package, start voting, and then release this package. It probably took a few man-hours and took a week or more if we wanted to do it according to all the procedures we have in our community. This is an enormous amount of work that is at odds with what was previously agreed upon by the community. None of the project maintainers will be interested in doing this. If you need to fix this error, you can prepare the package yourself and publish it in your organization's private python repository. The branch to start from is legacy-backport-cutoff-point. The documentation and tools to build the backports are there. |
If you are using Docker, you don't even need to prepare the pip package, but you can overwrite the required files in your image. |
While we don't officially release the backports and as @mik-laj mentioned it is quite an overhead to release one. However we have to take into account that the Http provider is one that is very commonly used, so we might try to think about doing a one time release to fix it as it might be a recurring problem for other users. This is an exceptional case - it is not a bug to fix but our own backwards incompatibility introduced in November. The reason for the problem was that - unfortunately - the There are two things to do - one tactical for now for you and more strategic what we do for the provider,
a) you can simply stay with the old import when testing migration. It should work with deprecation warning as long as you do not make use of the b) You can install
a) I think It will be rather easy to move the "make_kwargs_callable" to inside the http backport provider (this is only problem with http provider it seems) and release an out-of-band backport provider, creating a branch for it branching off the B) another option for strategic solution is simply to yank the releases after 2020.10.5 and leave only that version. Not nicest, but I think it should work and have no side effects. |
@potiuk Thank you for your reply.
I will probably test in my environment and report. It would be helpful if you could provide it in a form that allows installation using pip. |
Yea we can probably follow (a) move the "make_kwargs_callable" to inside the http backport provider. And release one-off HTTP backport provider since it is very popular. But even But like Jarek said this will need help from you'll in testing. And also note that the Backport Providers are only to help users transition to 2.0 and is provided with "best effort" and like Kamil said there is a bit of overhead to it. So please help us test this one and try to migrate to 2.0 ASAP, I know it is difficult for organization to upgrade to a major version but this one comes with huge performance gain. Airflow 1.10.x will reach EOL in June too. |
Fixes failing import problem of the http backport provider with Airflow 1.10.* series. A problem was introduced in apache#11922 which cause the http provider to stop working (local import was not caught at the review time and as local import it has not been caught by the test harness). Since the http provider is defunct and is very popular, we decided to release an out-of-band release of the http provider even if backport providers reached end-of-life. This PR copies implementation of make_kwargs_callable into http backport provider to deal with the incompatibility. Fixes: apache#15198
Fixes failing import problem of the http backport provider with Airflow 1.10.* series. A problem was introduced in #11922 which cause the http provider to stop working (local import was not caught at the review time and as local import it has not been caught by the test harness). Since the http provider is defunct and is very popular, we decided to release an out-of-band release of the http provider even if backport providers reached end-of-life. This PR copies implementation of make_kwargs_callable into http backport provider to deal with the incompatibility. Fixes: #15198
Hey @odajun @kurtqq @alexInhert : I just released https://pypi.org/project/apache-airflow-backport-providers-http/2021.4.10rc2/ that should fix the problem. Can you please run |
Please also add a non-binding vote if that works for you in https://lists.apache.org/thread.html/r5e870c593ca558c5e05417dc20b9dc55a48bbcb485483b63cd9b416c%40%3Cdev.airflow.apache.org%3E |
@potiuk Thank you for your support. After installing |
Released :) https://pypi.org/project/apache-airflow-backport-providers-http/2021.4.10/ Thanks again @odajun for both reporting and testing. We need more users like you. |
And as @kaxil mentioned - if this was a blocker to migrate to 2.0, you are unblocked now! And please migrate ASAP. You won't regret! |
Apache Airflow version: 1.10.14
Kubernetes version (if you are using kubernetes) (use
kubectl version
): 1.19Environment:
uname -a
): LinuxWhat happened:
While preparing for the upgrade by following the steps in the documentation, I was faced with an error at the point where I implemented the following changes.
error message
Anything else we need to know:
I suspect the following commit is required for 1.10.x version as well.
badd890#diff-d2d9b3696f554c1d2aee440470%5B%E2%80%A6%5D27dc193705e85b833b1f739271e81b14
There are other people who are encountering the same error.
https://apache-airflow.slack.com/archives/CCQB40SQJ/p1616504379010200
The text was updated successfully, but these errors were encountered: