There are some method invocations within 'main' that throw an exception:
For eg: getTaskNameToSystemStreamPartition (this might happen if there is no SSP for a given task).
However, this is outside the try block due to which, it doesn't cleanup properly before dying. The result is that, the AMF thread can still be alive - thus locking up resources in YARN.
Proposed resolution: Include all such statements within the try block