You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2018/08/02 07:45:00 UTC

[jira] [Commented] (AIRFLOW-2099) Task details cannot be shown when PythonOperator calls partial function / class instance with __call__

    [ https://issues.apache.org/jira/browse/AIRFLOW-2099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16566462#comment-16566462 ] 

ASF subversion and git services commented on AIRFLOW-2099:
----------------------------------------------------------

Commit a4b9aa386c93d8894a41e986da91d3841bb37f43 in incubator-airflow's branch refs/heads/master from Matt Revell
[ https://gitbox.apache.org/repos/asf?p=incubator-airflow.git;h=a4b9aa3 ]

[AIRFLOW-2099] Handle getsource() calls gracefully

There are several scenarios where Task Instance view tries to render
Python callables where 'x' is not the correct artefact to target.

This commit adds a helper fuction to test for known scenarios, and
derives the source from the correc artefact or as a default returns 'No
source available for <type>'. This means that even in unknown or
unfixable edge cases, the Task Instance view still renders instead of
displaying an exception.

Closes #3571 from night0wl/AIRFLOW-2099_task_view_type_check


> Task details cannot be shown when PythonOperator calls partial function / class instance with __call__
> ------------------------------------------------------------------------------------------------------
>
>                 Key: AIRFLOW-2099
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-2099
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: ui
>    Affects Versions: Airflow 1.8
>            Reporter: Matthew Revell
>            Assignee: Matthew Revell
>            Priority: Minor
>
> There are several scenarios where the inspect.getsource() method fails with:
> {{object at 0x00000000> is not a module, class, method, function, traceback, frame, or code object}}
> One such scenario is described in [AIRFLOW-1027|https://issues.apache.org/jira/browse/AIRFLOW-1027] where a partial function is used. Another is when an instance of a class which implements __call__() is used.
> Example:
> {{class MyClass(object):}}
> {{    def __init__(self):}}
> {{        pass}}
> {{    def __call__(self):}}
> {{        pass}}
> {{my_class = MyClass()}}
> {{dag_task = PythonOperator(}}
> {{    task_id='dag_task',}}
> {{    dag=dag, }}
> {{    python_callable=my_class,}}
> {{)}}
> There exists a PR for AIRFLOW-1027, however, this fix does not address this other scenario, and also does not guard against any other edge cases which my result in this error in future.
> A better solution would be to catch known scenarios with work arounds, and default to reporting that the source is unavailable for unknown cases. This would at least display the Task Instance details in every case.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)