MatrixManAtYrService opened a new issue #19096:
URL: https://github.com/apache/airflow/issues/19096


   ### Apache Airflow version
   
   2.2.0 (latest released)
   
   ### Operating System
   
   Debian Buster (docker)
   
   ### Versions of Apache Airflow Providers
   
   n/a
   
   ### Deployment
   
   Astronomer
   
   ### Deployment details
   
   No problems with `astro dev start`:
   
   ```Dockerfile
   FROM quay.io/astronomer/ap-airflow:2.1.4-buster-onbuild
   ```
   
   Problems occur with Dockerfile:
   ```Dockerfile
   FROM quay.io/astronomer/ap-airflow:2.2.0-buster-onbuild
   ```
   
   The DAG:
   ```python3
   @task(params={"a": {1, 2, 3}, "b": {3, 4, 5}})
   def intersect(intersection):
       print(intersection)
   
   @dag(
       schedule_interval="@daily",
       start_date=days_ago(1),
       default_args={"owner": "airflow"},
   )
   def set_params():
       intersect("{{ params.a.intersection(params.b).pop() }}")
   ```
   
   
   ### What happened
   
   The DAG parses and runs fine on 2.1.4, but when I upgrade to 2.2.0 I see an 
error at the top of the DAGs list:
   
   <img width="596" alt="Screen Shot 2021-10-19 at 10 08 41 PM" 
src="https://user-images.githubusercontent.com/5834582/138027465-5c552b09-9138-486c-b01c-3012f2f5c1fe.png";>
   
   The dag is still listed (from successful runs in 2.1.4) and when I click it 
I see a new error:
   
   ```
   Python version: 3.9.7
   Airflow version: 2.2.0+astro.2
   Node: 10b491f393be
   
-------------------------------------------------------------------------------
   Traceback (most recent call last):
     File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2447, in 
wsgi_app
       response = self.full_dispatch_request()
     File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1952, in 
full_dispatch_request
       rv = self.handle_user_exception(e)
     File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1821, in 
handle_user_exception
       reraise(exc_type, exc_value, tb)
     File "/usr/local/lib/python3.9/site-packages/flask/_compat.py", line 39, 
in reraise
       raise value
     File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1950, in 
full_dispatch_request
       rv = self.dispatch_request()
     File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1936, in 
dispatch_request
       return self.view_functions[rule.endpoint](**req.view_args)
     File "/usr/local/lib/python3.9/site-packages/airflow/www/auth.py", line 
51, in decorated
       return func(*args, **kwargs)
     File "/usr/local/lib/python3.9/site-packages/airflow/www/decorators.py", 
line 109, in view_func
       return f(*args, **kwargs)
     File "/usr/local/lib/python3.9/site-packages/airflow/www/decorators.py", 
line 72, in wrapper
       return f(*args, **kwargs)
     File "/usr/local/lib/python3.9/site-packages/airflow/utils/session.py", 
line 70, in wrapper
       return func(*args, session=session, **kwargs)
     File "/usr/local/lib/python3.9/site-packages/airflow/www/views.py", line 
2259, in tree
       dag = current_app.dag_bag.get_dag(dag_id)
     File "/usr/local/lib/python3.9/site-packages/airflow/utils/session.py", 
line 70, in wrapper
       return func(*args, session=session, **kwargs)
     File "/usr/local/lib/python3.9/site-packages/airflow/models/dagbag.py", 
line 186, in get_dag
       self._add_dag_from_db(dag_id=dag_id, session=session)
     File "/usr/local/lib/python3.9/site-packages/airflow/models/dagbag.py", 
line 261, in _add_dag_from_db
       dag = row.dag
     File 
"/usr/local/lib/python3.9/site-packages/airflow/models/serialized_dag.py", line 
180, in dag
       dag = SerializedDAG.from_dict(self.data)  # type: Any
     File 
"/usr/local/lib/python3.9/site-packages/airflow/serialization/serialized_objects.py",
 line 916, in from_dict
       return cls.deserialize_dag(serialized_obj['dag'])
     File 
"/usr/local/lib/python3.9/site-packages/airflow/serialization/serialized_objects.py",
 line 830, in deserialize_dag
       v = {task["task_id"]: SerializedBaseOperator.deserialize_operator(task) 
for task in v}
     File 
"/usr/local/lib/python3.9/site-packages/airflow/serialization/serialized_objects.py",
 line 830, in <dictcomp>
       v = {task["task_id"]: SerializedBaseOperator.deserialize_operator(task) 
for task in v}
     File 
"/usr/local/lib/python3.9/site-packages/airflow/serialization/serialized_objects.py",
 line 587, in deserialize_operator
       v = cls._deserialize_operator_params(v)
     File 
"/usr/local/lib/python3.9/site-packages/airflow/serialization/serialized_objects.py",
 line 729, in _deserialize_operator_params
       param_class = import_string(v['__class'])
   KeyError: '__class'
   ```
   
   ### What you expected to happen
   
   The dag runs the same as it did in 2.1.4
   
   ### How to reproduce
   
   Run the above DAG in 2.2.0
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to