[ https://issues.apache.org/jira/browse/FLINK-15488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17010266#comment-17010266 ]
Xintong Song commented on FLINK-15488: -------------------------------------- I agree with [~azagrebin] and [~trohrmann] that the logs generated during {{BashJavaUtils}} should be preserved. Those logs contains information about how memory sizes are calculated from the configurations, and hints of how to fix an improper configuration, which are important to the users. I also agree that if the logs are configured to be outputted to stdout, we should also forward them to stdout of {{taskmanager.sh}}. The example mentioned by [~dwysakowicz], {{OptimizerPlanEnvironment#getPipeline}}, inspires me with another approach. If separating logs and {{BashJavaUtils}} calculation results with regex is too fragile, maybe we can separate them inside {{BashJavaUtils}}, by overwriting the stdout. To be specific, we can overwrite stdout to a {{ByteArrayOutputStream}}, and make {{getTmResourceDynamicConfigs}} and {{getTmResourceJvmParams}} return string type results. Then we can make sure the calculation result is always outputted in the first or last line (it is already always the last line now but we can make it an explicit contract). If the result is not generated (say an exception is thrown during the calculation), we can use an empty line as a placeholder, and non-zero exit code should be returned so the shell script can learn that the result is invalid by checking the exit code. A {{try-catch(Throwable)-finally}} could be used to make sure the cached stdout will be outputted. > Cannot start a taskmanger if using logback > ------------------------------------------ > > Key: FLINK-15488 > URL: https://issues.apache.org/jira/browse/FLINK-15488 > Project: Flink > Issue Type: Bug > Components: API / Core, Deployment / Scripts > Affects Versions: 1.10.0 > Reporter: Dawid Wysakowicz > Priority: Blocker > Fix For: 1.10.0 > > > When using logback it is not possible to start the taskmanager using > {{taskamanger.sh}} scripts. The same problem (probably) occurs when using > slf4j that logs into the console. > The problem is that when calculating memory configuration with > {{BashJavaUtils}} class the result is returned through standard output. If > something is logged into the console it may result in undefined behavior such > as e.g. > {code} > Error: Could not find or load main class 13:51:23.961 > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)