[ https://issues.apache.org/jira/browse/NIFI-1905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Grande updated NIFI-1905: -------------------------------- Attachment: NIFI-1905.xml > Stop action doesn't invoke ExecuteProcess.destroy() > --------------------------------------------------- > > Key: NIFI-1905 > URL: https://issues.apache.org/jira/browse/NIFI-1905 > Project: Apache NiFi > Issue Type: Bug > Affects Versions: 0.6.1 > Environment: Raspberry Pi 3 > Java(TM) SE Runtime Environment (build 1.8.0_65-b17) > Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode) > Reporter: Andrew Grande > Priority: Critical > Attachments: NIFI-1905.xml > > > Consider the attached template. There is an ExecuteProcess which wraps a > python script like the one below. > * start ListenTcp > * start ExecuteProcess > * stop ExecuteProcess > Expected: the ExecuteProcess component terminates successfully > Actual: there's always a thread running (1 displayed in the top-right corner > of the processor) > The thread will only go away if the underlying command crashes. It's easy to > replicate by stopping ListenTcp - the script will fail with a socket > connection error and quit. > I have been looking into the ExecuteProcess source, and it looks like > OnUnscheduled must also invoke Process.destroy() in addition to terminating > the stdio/stderr I/O threads, but there's nothing like that anywhere. > {code} > import serial > import socket > # set up the serial connection speed > ser = serial.Serial('/dev/ttyUSB0', 115200) > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.connect(('localhost',3456)) > # main loop > while 1: > data = ser.readline() > s.sendall(data) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)