[ https://issues.apache.org/jira/browse/SPARK-25184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16588385#comment-16588385 ]
Apache Spark commented on SPARK-25184: -------------------------------------- User 'tdas' has created a pull request for this issue: https://github.com/apache/spark/pull/22182 > Flaky test: FlatMapGroupsWithState "streaming with processing time timeout" > --------------------------------------------------------------------------- > > Key: SPARK-25184 > URL: https://issues.apache.org/jira/browse/SPARK-25184 > Project: Spark > Issue Type: Test > Components: Structured Streaming > Affects Versions: 2.3.2 > Reporter: Tathagata Das > Priority: Minor > > {code} > Assert on query failed: Check total state rows = List(1), updated state rows > = List(2): Array() did not equal List(1) incorrect total rows, recent > progresses: > { > "id" : "3598002e-0120-4937-8a36-226e0af992b6", > "runId" : "e7efe911-72fb-48aa-ba35-775057eabe55", > "name" : null, > "timestamp" : "1970-01-01T00:00:12.000Z", > "batchId" : 3, > "numInputRows" : 0, > "durationMs" : { > "getEndOffset" : 0, > "setOffsetRange" : 0, > "triggerExecution" : 0 > }, > "stateOperators" : [ ], > "sources" : [ { > "description" : "MemoryStream[value#474622]", > "startOffset" : 2, > "endOffset" : 2, > "numInputRows" : 0 > } ], > "sink" : { > "description" : "MemorySink" > } > } > org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:528) > org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1560) > > org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:501) > > org.apache.spark.sql.streaming.StateStoreMetricsTest$$anonfun$assertNumStateRows$1.apply(StateStoreMetricsTest.scala:55) > > org.apache.spark.sql.streaming.StateStoreMetricsTest$$anonfun$assertNumStateRows$1.apply(StateStoreMetricsTest.scala:33) > > org.apache.spark.sql.streaming.StreamTest$$anonfun$executeAction$1$11.apply$mcZ$sp(StreamTest.scala:657) > > org.apache.spark.sql.streaming.StreamTest$class.verify$1(StreamTest.scala:428) > > org.apache.spark.sql.streaming.StreamTest$class.executeAction$1(StreamTest.scala:657) > > org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:775) > > org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:762) > == Progress == > > StartStream(ProcessingTime(1000),org.apache.spark.sql.streaming.util.StreamManualClock@5a12704,Map(),null) > AddData to MemoryStream[value#474622]: a > AdvanceManualClock(1000) > CheckNewAnswer: [a,1] > AssertOnQuery(<condition>, Check total state rows = List(1), updated state > rows = List(1)) > AddData to MemoryStream[value#474622]: b > AdvanceManualClock(1000) > CheckNewAnswer: [b,1] > AssertOnQuery(<condition>, Check total state rows = List(2), updated state > rows = List(1)) > AddData to MemoryStream[value#474622]: b > AdvanceManualClock(10000) > CheckNewAnswer: [a,-1],[b,2] > AssertOnQuery(<condition>, Check total state rows = List(1), updated state > rows = List(2)) > StopStream > > StartStream(ProcessingTime(1000),org.apache.spark.sql.streaming.util.StreamManualClock@5a12704,Map(),null) > AddData to MemoryStream[value#474622]: c > AdvanceManualClock(11000) > CheckNewAnswer: [b,-1],[c,1] > => AssertOnQuery(<condition>, Check total state rows = List(1), updated state > rows = List(2)) > AdvanceManualClock(12000) > AssertOnQuery(<condition>, ) > AssertOnQuery(<condition>, name) > CheckNewAnswer: [c,-1] > AssertOnQuery(<condition>, Check total state rows = List(0), updated state > rows = List(0)) > == Stream == > Output Mode: Update > Stream state: {MemoryStream[value#474622]: 3} > Thread state: alive > Thread stack trace: java.lang.Object.wait(Native Method) > org.apache.spark.util.ManualClock.waitTillTime(ManualClock.scala:61) > org.apache.spark.sql.streaming.util.StreamManualClock.waitTillTime(StreamManualClock.scala:34) > org.apache.spark.sql.execution.streaming.ProcessingTimeExecutor.execute(TriggerExecutor.scala:65) > org.apache.spark.sql.execution.streaming.MicroBatchExecution.runActivatedStream(MicroBatchExecution.scala:166) > org.apache.spark.sql.execution.streaming.StreamExecution.org$apache$spark$sql$execution$streaming$StreamExecution$$runStream(StreamExecution.scala:293) > org.apache.spark.sql.execution.streaming.StreamExecution$$anon$1.run(StreamExecution.scala:203) > == Sink == > 0: [a,1] > 1: [b,1] > 2: [a,-1] [b,2] > 3: [b,-1] [c,1] > == Plan == > == Parsed Logical Plan == > SerializeFromObject [staticinvoke(class > org.apache.spark.unsafe.types.UTF8String, StringType, fromString, > assertnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1, true, false) > AS _1#474630, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, > StringType, fromString, assertnotnull(assertnotnull(input[0, scala.Tuple2, > true]))._2, true, false) AS _2#474631] > +- FlatMapGroupsWithState <function3>, cast(value#474625 as string).toString, > cast(value#474622 as string).toString, [value#474625], [value#474622], > obj#474629: scala.Tuple2, class[count[0]: bigint], Update, false, > ProcessingTimeTimeout > +- AppendColumns <function1>, class java.lang.String, > [StructField(value,StringType,true)], cast(value#474622 as string).toString, > [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, > fromString, input[0, java.lang.String, true], true, false) AS value#474625] > +- Project [value#474737 AS value#474622] > +- StreamingDataSourceV2Relation [value#474737], > MemoryStream[value#474622] > == Analyzed Logical Plan == > _1: string, _2: string > SerializeFromObject [staticinvoke(class > org.apache.spark.unsafe.types.UTF8String, StringType, fromString, > assertnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1, true, false) > AS _1#474630, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, > StringType, fromString, assertnotnull(assertnotnull(input[0, scala.Tuple2, > true]))._2, true, false) AS _2#474631] > +- FlatMapGroupsWithState <function3>, cast(value#474625 as string).toString, > cast(value#474622 as string).toString, [value#474625], [value#474622], > obj#474629: scala.Tuple2, class[count[0]: bigint], Update, false, > ProcessingTimeTimeout > +- AppendColumns <function1>, class java.lang.String, > [StructField(value,StringType,true)], cast(value#474622 as string).toString, > [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, > fromString, input[0, java.lang.String, true], true, false) AS value#474625] > +- Project [value#474737 AS value#474622] > +- StreamingDataSourceV2Relation [value#474737], > MemoryStream[value#474622] > == Optimized Logical Plan == > SerializeFromObject [staticinvoke(class > org.apache.spark.unsafe.types.UTF8String, StringType, fromString, > assertnotnull(input[0, scala.Tuple2, true])._1, true, false) AS _1#474630, > staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, > fromString, assertnotnull(input[0, scala.Tuple2, true])._2, true, false) AS > _2#474631] > +- FlatMapGroupsWithState <function3>, value#474625.toString, > value#474737.toString, [value#474625], [value#474737], obj#474629: > scala.Tuple2, class[count[0]: bigint], Update, false, ProcessingTimeTimeout > +- AppendColumns <function1>, class java.lang.String, > [StructField(value,StringType,true)], value#474737.toString, > [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, > fromString, input[0, java.lang.String, true], true, false) AS value#474625] > +- StreamingDataSourceV2Relation [value#474737], > MemoryStream[value#474622] > == Physical Plan == > *(3) SerializeFromObject [staticinvoke(class > org.apache.spark.unsafe.types.UTF8String, StringType, fromString, > assertnotnull(input[0, scala.Tuple2, true])._1, true, false) AS _1#474630, > staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, > fromString, assertnotnull(input[0, scala.Tuple2, true])._2, true, false) AS > _2#474631] > +- FlatMapGroupsWithState <function3>, value#474625.toString, > value#474737.toString, [value#474625], [value#474737], obj#474629: > scala.Tuple2, state info [ checkpoint = > file:/home/jenkins/workspace/sql/core/target/tmp/streaming.metadata-c83eb927-b99f-4c69-9c53-cbb80b0829e4/state, > runId = e7efe911-72fb-48aa-ba35-775057eabe55, opId = 0, ver = 3, > numPartitions = 5], class[count[0]: bigint], 2, Update, > ProcessingTimeTimeout, 23000, 0 > +- *(2) Sort [value#474625 ASC NULLS FIRST], false, 0 > +- Exchange hashpartitioning(value#474625, 5) > +- AppendColumns <function1>, value#474737.toString, > [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, > fromString, input[0, java.lang.String, true], true, false) AS value#474625] > +- *(1) DataSourceV2Scan [value#474737], > MemoryStream[value#474622] > > > at > org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:528) > at > org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1560) > at org.scalatest.Assertions$class.fail(Assertions.scala:1089) > at org.scalatest.FunSuite.fail(FunSuite.scala:1560) > at > org.apache.spark.sql.streaming.StreamTest$class.failTest$1(StreamTest.scala:458) > at > org.apache.spark.sql.streaming.StreamTest$class.executeAction$1(StreamTest.scala:660) > at > org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:775) > at > org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:762) > at > scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) > at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35) > at > org.apache.spark.sql.streaming.StreamTest$class.liftedTree1$1(StreamTest.scala:762) > at > org.apache.spark.sql.streaming.StreamTest$class.testStream(StreamTest.scala:761) > at > org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite.testStream(FlatMapGroupsWithStateSuite.scala:48) > at > org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite$$anonfun$15.apply$mcV$sp(FlatMapGroupsWithStateSuite.scala:769) > at > org.apache.spark.sql.catalyst.plans.PlanTestBase$class.withSQLConf(PlanTest.scala:176) > at > org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite.org$apache$spark$sql$test$SQLTestUtilsBase$$super$withSQLConf(FlatMapGroupsWithStateSuite.scala:48) > at > org.apache.spark.sql.test.SQLTestUtilsBase$class.withSQLConf(SQLTestUtils.scala:192) > at > org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite.withSQLConf(FlatMapGroupsWithStateSuite.scala:48) > at > org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite$$anonfun$testWithAllStateVersions$1$$anonfun$apply$mcVI$sp$1.apply$mcV$sp(FlatMapGroupsWithStateSuite.scala:1277) > at > org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite$$anonfun$testWithAllStateVersions$1$$anonfun$apply$mcVI$sp$1.apply(FlatMapGroupsWithStateSuite.scala:1277) > at > org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite$$anonfun$testWithAllStateVersions$1$$anonfun$apply$mcVI$sp$1.apply(FlatMapGroupsWithStateSuite.scala:1277) > 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:186) > at org.apache.spark.SparkFunSuite.withFixture(SparkFunSuite.scala:76) > at > org.scalatest.FunSuiteLike$class.invokeWithFixture$1(FunSuiteLike.scala:183) > at > org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:196) > at > org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:196) > at org.scalatest.SuperEngine.runTestImpl(Engine.scala:289) > at org.scalatest.FunSuiteLike$class.runTest(FunSuiteLike.scala:196) > at > org.apache.spark.SparkFunSuite.org$scalatest$BeforeAndAfterEach$$super$runTest(SparkFunSuite.scala:36) > at > org.scalatest.BeforeAndAfterEach$class.runTest(BeforeAndAfterEach.scala:221) > at org.apache.spark.SparkFunSuite.runTest(SparkFunSuite.scala:36) > at > org.scalatest.FunSuiteLike$$anonfun$runTests$1.apply(FunSuiteLike.scala:229) > at > org.scalatest.FunSuiteLike$$anonfun$runTests$1.apply(FunSuiteLike.scala:229) > at > org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:396) > at > org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:384) > at scala.collection.immutable.List.foreach(List.scala:381) > at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:384) > at > org.scalatest.SuperEngine.org$scalatest$SuperEngine$$runTestsInBranch(Engine.scala:379) > at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:461) > at org.scalatest.FunSuiteLike$class.runTests(FunSuiteLike.scala:229) > at org.scalatest.FunSuite.runTests(FunSuite.scala:1560) > at org.scalatest.Suite$class.run(Suite.scala:1147) > at > org.scalatest.FunSuite.org$scalatest$FunSuiteLike$$super$run(FunSuite.scala:1560) > at > org.scalatest.FunSuiteLike$$anonfun$run$1.apply(FunSuiteLike.scala:233) > at > org.scalatest.FunSuiteLike$$anonfun$run$1.apply(FunSuiteLike.scala:233) > at org.scalatest.SuperEngine.runImpl(Engine.scala:521) > at org.scalatest.FunSuiteLike$class.run(FunSuiteLike.scala:233) > at > org.apache.spark.SparkFunSuite.org$scalatest$BeforeAndAfterAll$$super$run(SparkFunSuite.scala:36) > at > org.scalatest.BeforeAndAfterAll$class.liftedTree1$1(BeforeAndAfterAll.scala:213) > at > org.scalatest.BeforeAndAfterAll$class.run(BeforeAndAfterAll.scala:210) > at org.apache.spark.SparkFunSuite.run(SparkFunSuite.scala:36) > at > org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:314) > at > org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:480) > at sbt.ForkMain$Run$2.call(ForkMain.java:296) > at sbt.ForkMain$Run$2.call(ForkMain.java:286) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org