[
https://issues.apache.org/jira/browse/FLINK-2852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14963270#comment-14963270
]
Sachin Goel commented on FLINK-2852:
------------------------------------
This is proving to be a major headache, failing almost every other build. Two
things:
1. We definitely need a better way to ensure that a job has finished. I propose
this:
In {{JobClient}}, there is a {{if-else}] block for
{code}
if (answer instanceof JobManagerMessages.JobResultSuccess) {
LOG.info("Job execution complete");
...
}
{code}
We can simply add this:
{code}
if (sysoutLogUpdates) {
System.out.println("Job execution complete.");
}
{code}
and check for this string in the result.
2. Why do we actually need this check in these two tests? None of the other
tests in {{ScalaShellITSuite}} verify this exact line. We can just have the
usual tests which are:
{code}
output should not include "Error"
output should not include "ERROR"
output should not include "Exception"
output should not include "failed"
{code}
1 is not a very major issue, and not very important. If this needs to be fixed,
it should be in a separate jira. To fix this flaky test, we can just remove the
check, as if the execution ever failed, one of the four checks will fail.
Also,
{code}
val input: String = "val els =
env.fromElements(\"a\",\"b\");\nels.print\nError\n:q\n"
{code}
is somewhat poorly written [in both Scala shell integration tests]. I fail to
understand why the {{Error}} is left in there. Perhaps it was for debugging
purposes, but it should've been removed before committing. We should fix this
also under this jira.
[~till.rohrmann], if you're busy with something else, I can push a quick fix
for the 2nd point now. We can decide on 1st later.
> Fix flaky ScalaShellITSuite
> ---------------------------
>
> Key: FLINK-2852
> URL: https://issues.apache.org/jira/browse/FLINK-2852
> Project: Flink
> Issue Type: Bug
> Components: Scala Shell
> Affects Versions: 0.10
> Reporter: Till Rohrmann
> Assignee: Till Rohrmann
> Priority: Critical
> Labels: test-stability
> Fix For: 0.10
>
>
> The {{ScalaShellITSuite}} checks the log output whether a job has successful
> completed or not. For that to happen it checks for a {{Job execution switched
> to status FINISHED}} string in the log output. However, if the
> {{FlinkClientActor}} receives first a {{JobResultSuccess}} message before
> receiving the {{JobStatusChanged}} message, then it will send the execution
> result back to the {{Client}} and terminate itself. This has the consequence
> that the output will never contain the above-mentioned string.
> I propose to use a different mean to check whether a job has finished
> successfully or not.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)