org.scalatest.exceptions.TestFailedException: Assert on query failed: Check total state rows = List(2), updated state rows = List(1): Array(1) did not equal List(2) incorrect total rows, recent progresses: 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:649) org.apache.spark.sql.streaming.StreamTest$class.verify$1(StreamTest.scala:420) org.apache.spark.sql.streaming.StreamTest$class.executeAction$1(StreamTest.scala:649) org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:767) org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:754) == Progress == StartStream(ProcessingTime(1000),org.apache.spark.sql.streaming.util.StreamManualClock@3ddde018,Map(),null) AddData to MemoryStream[value#34255]: a AdvanceManualClock(1000) CheckNewAnswer: [a,1] AssertOnQuery(<condition>, Check total state rows = List(1), updated state rows = List(1)) AddData to MemoryStream[value#34255]: b AdvanceManualClock(1000) CheckNewAnswer: [b,1] => AssertOnQuery(<condition>, Check total state rows = List(2), updated state rows = List(1)) AddData to MemoryStream[value#34255]: 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@3ddde018,Map(),null) AddData to MemoryStream[value#34255]: 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#34255]: 1} 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:161) org.apache.spark.sql.execution.streaming.StreamExecution.org$apache$spark$sql$execution$streaming$StreamExecution$$runStream(StreamExecution.scala:279) org.apache.spark.sql.execution.streaming.StreamExecution$$anon$1.run(StreamExecution.scala:189) == Sink == 0: [a,1] 1: [b,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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(assertnotnull(input[0, scala.Tuple2, true]))._2, true, false) AS _2#34264] +- FlatMapGroupsWithState <function3>, cast(value#34258 as string).toString, cast(value#34255 as string).toString, [value#34258], [value#34255], obj#34262: scala.Tuple2, class[count[0]: bigint], Update, false, ProcessingTimeTimeout +- AppendColumns <function1>, class java.lang.String, [StructField(value,StringType,true)], cast(value#34255 as string).toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258] +- Project [value#34324 AS value#34255] +- Streaming RelationV2 MemoryStreamDataSource$[value#34324] == 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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(assertnotnull(input[0, scala.Tuple2, true]))._2, true, false) AS _2#34264] +- FlatMapGroupsWithState <function3>, cast(value#34258 as string).toString, cast(value#34255 as string).toString, [value#34258], [value#34255], obj#34262: scala.Tuple2, class[count[0]: bigint], Update, false, ProcessingTimeTimeout +- AppendColumns <function1>, class java.lang.String, [StructField(value,StringType,true)], cast(value#34255 as string).toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258] +- Project [value#34324 AS value#34255] +- Streaming RelationV2 MemoryStreamDataSource$[value#34324] == 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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(input[0, scala.Tuple2, true])._2, true, false) AS _2#34264] +- FlatMapGroupsWithState <function3>, value#34258.toString, value#34324.toString, [value#34258], [value#34324], obj#34262: scala.Tuple2, class[count[0]: bigint], Update, false, ProcessingTimeTimeout +- AppendColumns <function1>, class java.lang.String, [StructField(value,StringType,true)], value#34324.toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258] +- Streaming RelationV2 MemoryStreamDataSource$[value#34324] == 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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(input[0, scala.Tuple2, true])._2, true, false) AS _2#34264] +- FlatMapGroupsWithState <function3>, value#34258.toString, value#34324.toString, [value#34258], [value#34324], obj#34262: scala.Tuple2, state info [ checkpoint = file:/home/jenkins/workspace/spark-master-test-sbt-hadoop-2.7/target/tmp/streaming.metadata-20b8eea8-8ed7-4ced-bcc8-70eabab76c4a/state, runId = 33b5f947-d9d7-44ba-9366-815889a8043f, opId = 0, ver = 1, numPartitions = 5], class[count[0]: bigint], 2, Update, ProcessingTimeTimeout, 2000, 0 +- *(2) Sort [value#34258 ASC NULLS FIRST], false, 0 +- Exchange hashpartitioning(value#34258, 5) +- AppendColumns <function1>, value#34324.toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258] +- *(1) Project [value#34324] +- *(1) ScanV2 MemoryStreamDataSource$[value#34324]

sbt.ForkMain$ForkError: org.scalatest.exceptions.TestFailedException: 
Assert on query failed: Check total state rows = List(2), updated state rows = List(1): Array(1) did not equal List(2) incorrect total rows, recent progresses:

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:649)
	org.apache.spark.sql.streaming.StreamTest$class.verify$1(StreamTest.scala:420)
	org.apache.spark.sql.streaming.StreamTest$class.executeAction$1(StreamTest.scala:649)
	org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:767)
	org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:754)


== Progress ==
   StartStream(ProcessingTime(1000),org.apache.spark.sql.streaming.util.StreamManualClock@3ddde018,Map(),null)
   AddData to MemoryStream[value#34255]: a
   AdvanceManualClock(1000)
   CheckNewAnswer: [a,1]
   AssertOnQuery(<condition>, Check total state rows = List(1), updated state rows = List(1))
   AddData to MemoryStream[value#34255]: b
   AdvanceManualClock(1000)
   CheckNewAnswer: [b,1]
=> AssertOnQuery(<condition>, Check total state rows = List(2), updated state rows = List(1))
   AddData to MemoryStream[value#34255]: 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@3ddde018,Map(),null)
   AddData to MemoryStream[value#34255]: 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#34255]: 1}
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:161)
org.apache.spark.sql.execution.streaming.StreamExecution.org$apache$spark$sql$execution$streaming$StreamExecution$$runStream(StreamExecution.scala:279)
org.apache.spark.sql.execution.streaming.StreamExecution$$anon$1.run(StreamExecution.scala:189)


== Sink ==
0: [a,1]
1: [b,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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(assertnotnull(input[0, scala.Tuple2, true]))._2, true, false) AS _2#34264]
+- FlatMapGroupsWithState <function3>, cast(value#34258 as string).toString, cast(value#34255 as string).toString, [value#34258], [value#34255], obj#34262: scala.Tuple2, class[count[0]: bigint], Update, false, ProcessingTimeTimeout
   +- AppendColumns <function1>, class java.lang.String, [StructField(value,StringType,true)], cast(value#34255 as string).toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258]
      +- Project [value#34324 AS value#34255]
         +- Streaming RelationV2 MemoryStreamDataSource$[value#34324]

== 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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(assertnotnull(input[0, scala.Tuple2, true]))._2, true, false) AS _2#34264]
+- FlatMapGroupsWithState <function3>, cast(value#34258 as string).toString, cast(value#34255 as string).toString, [value#34258], [value#34255], obj#34262: scala.Tuple2, class[count[0]: bigint], Update, false, ProcessingTimeTimeout
   +- AppendColumns <function1>, class java.lang.String, [StructField(value,StringType,true)], cast(value#34255 as string).toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258]
      +- Project [value#34324 AS value#34255]
         +- Streaming RelationV2 MemoryStreamDataSource$[value#34324]

== 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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(input[0, scala.Tuple2, true])._2, true, false) AS _2#34264]
+- FlatMapGroupsWithState <function3>, value#34258.toString, value#34324.toString, [value#34258], [value#34324], obj#34262: scala.Tuple2, class[count[0]: bigint], Update, false, ProcessingTimeTimeout
   +- AppendColumns <function1>, class java.lang.String, [StructField(value,StringType,true)], value#34324.toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258]
      +- Streaming RelationV2 MemoryStreamDataSource$[value#34324]

== 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#34263, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, assertnotnull(input[0, scala.Tuple2, true])._2, true, false) AS _2#34264]
+- FlatMapGroupsWithState <function3>, value#34258.toString, value#34324.toString, [value#34258], [value#34324], obj#34262: scala.Tuple2, state info [ checkpoint = file:/home/jenkins/workspace/spark-master-test-sbt-hadoop-2.7/target/tmp/streaming.metadata-20b8eea8-8ed7-4ced-bcc8-70eabab76c4a/state, runId = 33b5f947-d9d7-44ba-9366-815889a8043f, opId = 0, ver = 1, numPartitions = 5], class[count[0]: bigint], 2, Update, ProcessingTimeTimeout, 2000, 0
   +- *(2) Sort [value#34258 ASC NULLS FIRST], false, 0
      +- Exchange hashpartitioning(value#34258, 5)
         +- AppendColumns <function1>, value#34324.toString, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false) AS value#34258]
            +- *(1) Project [value#34324]
               +- *(1) ScanV2 MemoryStreamDataSource$[value#34324]
         
         
	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:450)
	at org.apache.spark.sql.streaming.StreamTest$class.executeAction$1(StreamTest.scala:652)
	at org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:767)
	at org.apache.spark.sql.streaming.StreamTest$$anonfun$liftedTree1$1$1.apply(StreamTest.scala:754)
	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:754)
	at org.apache.spark.sql.streaming.StreamTest$class.testStream(StreamTest.scala:753)
	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:167)
	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:103)
	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.sql.streaming.FlatMapGroupsWithStateSuite.org$scalatest$BeforeAndAfterEach$$super$runTest(FlatMapGroupsWithStateSuite.scala:48)
	at org.scalatest.BeforeAndAfterEach$class.runTest(BeforeAndAfterEach.scala:221)
	at org.apache.spark.sql.streaming.FlatMapGroupsWithStateSuite.runTest(FlatMapGroupsWithStateSuite.scala:48)
	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:392)
	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:52)
	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:52)
	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:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)