This is an automated email from the ASF dual-hosted git repository.

dongjoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 982c7268f4c [SPARK-46186][CONNECT][TESTS][FOLLOWUP] Remove flakiness 
of `ReattachableExecuteSuite`
982c7268f4c is described below

commit 982c7268f4c7ea1fa03ea679146f9e83f31bece7
Author: Juliusz Sompolski <ju...@databricks.com>
AuthorDate: Wed Dec 6 10:57:45 2023 -0800

    [SPARK-46186][CONNECT][TESTS][FOLLOWUP] Remove flakiness of 
`ReattachableExecuteSuite`
    
    ### What changes were proposed in this pull request?
    
    The test added in https://github.com/apache/spark/pull/44095 could be flaky 
because `MEDIUM_RESULTS_QUERY` could very quickly finish before interrupt was 
sent. Replace it with a query that sleeps 30 seconds, so that we are sure that 
interrupt runs before it finishes.
    
    ### Why are the changes needed?
    
    Remove test flakiness.
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Rerun ReattachableExecuteSuite 100+ times to check it isn't flaky.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    Github Copilot was assisting in some boilerplate auto-completion.
    
    Generated-by: Github Copilot
    
    Closes #44189 from juliuszsompolski/SPARK-46186-followup.
    
    Authored-by: Juliusz Sompolski <ju...@databricks.com>
    Signed-off-by: Dongjoon Hyun <dh...@apple.com>
---
 .../sql/connect/execution/ReattachableExecuteSuite.scala     | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/execution/ReattachableExecuteSuite.scala
 
b/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/execution/ReattachableExecuteSuite.scala
index 02b75f04495..f80229c6198 100644
--- 
a/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/execution/ReattachableExecuteSuite.scala
+++ 
b/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/execution/ReattachableExecuteSuite.scala
@@ -298,6 +298,15 @@ class ReattachableExecuteSuite extends 
SparkConnectServerTest {
   }
 
   test("SPARK-46186 interrupt directly after query start") {
+    // register a sleep udf in the session
+    val serverSession =
+      SparkConnectService.getOrCreateIsolatedSession(defaultUserId, 
defaultSessionId).session
+    serverSession.udf.register(
+      "sleep",
+      ((ms: Int) => {
+        Thread.sleep(ms);
+        ms
+      }))
     // This test depends on fast timing.
     // If something is wrong, it can fail only from time to time.
     withRawBlockingStub { stub =>
@@ -309,12 +318,13 @@ class ReattachableExecuteSuite extends 
SparkConnectServerTest {
         .setOperationId(operationId)
         .build()
       val iter = stub.executePlan(
-        buildExecutePlanRequest(buildPlan(MEDIUM_RESULTS_QUERY), operationId = 
operationId))
+        buildExecutePlanRequest(buildPlan("select sleep(30000) as s"), 
operationId = operationId))
       // wait for execute holder to exist, but the execute thread may not have 
started yet.
       Eventually.eventually(timeout(eventuallyTimeout)) {
         assert(SparkConnectService.executionManager.listExecuteHolders.length 
== 1)
       }
       stub.interrupt(interruptRequest)
+      // make sure the client gets the OPERATION_CANCELED error
       val e = intercept[StatusRuntimeException] {
         while (iter.hasNext) iter.next()
       }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to