Github user viirya commented on a diff in the pull request:

    https://github.com/apache/spark/pull/15915#discussion_r92768403
  
    --- Diff: 
core/src/main/scala/org/apache/spark/storage/memory/MemoryStore.scala ---
    @@ -331,7 +331,15 @@ private[spark] class MemoryStore(
         var unrollMemoryUsedByThisBlock = 0L
         // Underlying buffer for unrolling the block
         val redirectableStream = new RedirectableOutputStream
    -    val bbos = new 
ChunkedByteBufferOutputStream(initialMemoryThreshold.toInt, allocator)
    +    val chunkSize = if (initialMemoryThreshold > Int.MaxValue) {
    +      logWarning(s"Initial memory threshold of 
${Utils.bytesToString(initialMemoryThreshold)} " +
    +        s"is too large to be set as chunk size. It is safe to be cap at 
Int.MaxValue for chunk " +
    +        s"size instead.")
    +      Int.MaxValue
    +    } else {
    +      initialMemoryThreshold.toInt
    +    }
    +    val bbos = new ChunkedByteBufferOutputStream(chunkSize, allocator)
    --- End diff --
    
    Another option is to catch OOM exception here and then log a meaningful 
error message to hint users to lower `spark.storage.unrollMemoryThreshold` 
setting.
    
    @srowen What do you think?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

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

Reply via email to