[
https://issues.apache.org/jira/browse/SPARK-5559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sean Owen resolved SPARK-5559.
------------------------------
Resolution: Fixed
Fix Version/s: 1.4.0
1.3.1
1.2.2
> Flaky test: o.a.s.streaming.flume.FlumeStreamSuite
> --------------------------------------------------
>
> Key: SPARK-5559
> URL: https://issues.apache.org/jira/browse/SPARK-5559
> Project: Spark
> Issue Type: Improvement
> Components: Project Infra, Streaming
> Affects Versions: 1.3.0
> Reporter: Kousuke Saruta
> Assignee: Kousuke Saruta
> Priority: Critical
> Labels: flaky-test
> Fix For: 1.2.2, 1.3.1, 1.4.0
>
>
> When we run FlumeStreamSuite on Jenkins, sometimes we get error like as
> follows.
> {code}
> sbt.ForkMain$ForkError: The code passed to eventually never returned
> normally. Attempted 52 times over 10.094849836 seconds. Last failure message:
> Error connecting to localhost/127.0.0.1:23456.
> at
> org.scalatest.concurrent.Eventually$class.tryTryAgain$1(Eventually.scala:420)
> at
> org.scalatest.concurrent.Eventually$class.eventually(Eventually.scala:438)
> at org.scalatest.concurrent.Eventually$.eventually(Eventually.scala:478)
> at
> org.scalatest.concurrent.Eventually$class.eventually(Eventually.scala:307)
> at org.scalatest.concurrent.Eventually$.eventually(Eventually.scala:478)
> at
> org.apache.spark.streaming.flume.FlumeStreamSuite.writeAndVerify(FlumeStreamSuite.scala:116)
> at
> org.apache.spark.streaming.flume.FlumeStreamSuite.org$apache$spark$streaming$flume$FlumeStreamSuite$$testFlumeStream(FlumeStreamSuite.scala:74)
> at
> org.apache.spark.streaming.flume.FlumeStreamSuite$$anonfun$3.apply$mcV$sp(FlumeStreamSuite.scala:66)
> at
> org.apache.spark.streaming.flume.FlumeStreamSuite$$anonfun$3.apply(FlumeStreamSuite.scala:66)
> at
> org.apache.spark.streaming.flume.FlumeStreamSuite$$anonfun$3.apply(FlumeStreamSuite.scala:66)
> at
> org.scalatest.Transformer$$anonfun$apply$1.apply$mcV$sp(Transformer.scala:22)
> at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85)
> at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
> at org.scalatest.Transformer.apply(Transformer.scala:22)
> at org.scalatest.Transformer.apply(Transformer.scala:20)
> at org.scalatest.FunSuiteLike$$anon$1.apply(FunSuiteLike.scala:166)
> at org.scalatest.Suite$class.withFixture(Suite.scala:1122)
> at org.scalatest.FunSuite.withFixture(FunSuite.scala:1555)
> at
> org.scalatest.FunSuiteLike$class.invokeWithFixture$1(FunSuiteLike.scala:163)
> at
> org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:175)
> at
> org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:175)
> at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
> at org.scalatest.FunSuiteLike$class.runTest(FunSuiteLike.scala:175)
> {code}
> This error is caused by check-then-act logic when it find free-port .
> {code}
> /** Find a free port */
> private def findFreePort(): Int = {
> Utils.startServiceOnPort(23456, (trialPort: Int) => {
> val socket = new ServerSocket(trialPort)
> socket.close()
> (null, trialPort)
> }, conf)._2
> }
> {code}
> Removing the check-then-act is not easy but we can reduce the chance of
> having the error by choosing random value for initial port instead of 23456.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]