Jarek Potiuk created AIRFLOW-4440:
-------------------------------------

             Summary: Avoid terminating processes using shared resources
                 Key: AIRFLOW-4440
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-4440
             Project: Apache Airflow
          Issue Type: Bug
            Reporter: Jarek Potiuk


According to 
[https://docs.python.org/3.5/library/multiprocessing.html#programming-guidelines]
 we should avoid terminating processes when shared resources (Locks, Queues 
etc. are used)

We are using terminate() in a few places in the code and we should replace it 
with more graceful way of stopping the processes (sending poison pills) - see 
the last example in 
[https://docs.python.org/3.5/library/multiprocessing.html|https://docs.python.org/3.5/library/multiprocessing.html#programming-guidelines]
 where 'STOP' is sent to shutdown the process. 

This also prevents graceful joins in a number of cases - for example in 

DagFileProcessorAgent.end() where we had to comment it out until this problem 
is solved.

 

We should review and remove all terminates() unless they are absolutely 
necessary and replae them with more graceful mechanism of shutting down.

 



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

Reply via email to