aboutsummaryrefslogtreecommitdiff
path: root/core/src/test/scala/org/apache/spark/shuffle/ShuffleMemoryManagerSuite.scala
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/scala/org/apache/spark/shuffle/ShuffleMemoryManagerSuite.scala')
-rw-r--r--core/src/test/scala/org/apache/spark/shuffle/ShuffleMemoryManagerSuite.scala17
1 files changed, 16 insertions, 1 deletions
diff --git a/core/src/test/scala/org/apache/spark/shuffle/ShuffleMemoryManagerSuite.scala b/core/src/test/scala/org/apache/spark/shuffle/ShuffleMemoryManagerSuite.scala
index d31bc22ee7..e0e646f0a3 100644
--- a/core/src/test/scala/org/apache/spark/shuffle/ShuffleMemoryManagerSuite.scala
+++ b/core/src/test/scala/org/apache/spark/shuffle/ShuffleMemoryManagerSuite.scala
@@ -159,7 +159,7 @@ class ShuffleMemoryManagerSuite extends FunSuite with Timeouts {
test("threads can block to get at least 1 / 2N memory") {
// t1 grabs 1000 bytes and then waits until t2 is ready to make a request. It sleeps
- // for a bit and releases 250 bytes, which should then be greanted to t2. Further requests
+ // for a bit and releases 250 bytes, which should then be granted to t2. Further requests
// by t2 will return false right away because it now has 1 / 2N of the memory.
val manager = new ShuffleMemoryManager(1000L)
@@ -291,4 +291,19 @@ class ShuffleMemoryManagerSuite extends FunSuite with Timeouts {
assert(state.t2WaitTime > 200, s"t2 waited less than 200 ms (${state.t2WaitTime})")
}
}
+
+ test("threads should not be granted a negative size") {
+ val manager = new ShuffleMemoryManager(1000L)
+ manager.tryToAcquire(700L)
+
+ val latch = new CountDownLatch(1)
+ startThread("t1") {
+ manager.tryToAcquire(300L)
+ latch.countDown()
+ }
+ latch.await() // Wait until `t1` calls `tryToAcquire`
+
+ val granted = manager.tryToAcquire(300L)
+ assert(0 === granted, "granted is negative")
+ }
}