Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Following up on findings in YARN-8962, I noticed the following issues in container-executor and main.c:
- There seem to be some vars that are not cleaned up in container_executor:
In run_docker else: free docker_binary
In exec_container:
before return INVALID_COMMAND_FILE: free docker_binary
3x return DOCKER_EXEC_FAILED: set exit code and goto cleanup instead
cleanup needed before exit calls? - In
YARN-8777we added several fprintf(stderr calls, but the convention in container-executor.c appears to be fprintf(ERRORFILE followed by fflush(ERRORFILE). - There are leaks in TestDockerUtil_test_add_ports_mapping_to_command_Test.
- There are additional places where flush is not performed after writing to stderr, including main.c display_feature_disabled_message. This can result in the client not receiving the error message if the connection is closed too quickly.