Skip to content
  • hyukjinkwon's avatar
    6b3d0228
    [SPARK-21093][R] Terminate R's worker processes in the parent of R's daemon to prevent a leak · 6b3d0228
    hyukjinkwon authored
    ## What changes were proposed in this pull request?
    
    `mcfork` in R looks opening a pipe ahead but the existing logic does not properly close it when it is executed hot. This leads to the failure of more forking due to the limit for number of files open.
    
    This hot execution looks particularly for `gapply`/`gapplyCollect`. For unknown reason, this happens more easily in CentOS and could be reproduced in Mac too.
    
    All the details are described in https://issues.apache.org/jira/browse/SPARK-21093
    
    This PR proposes simply to terminate R's worker processes in the parent of R's daemon to prevent a leak.
    
    ## How was this patch tested?
    
    I ran the codes below on both CentOS and Mac with that configuration disabled/enabled.
    
    ```r
    df <- createDataFrame(list(list(1L, 1, "1", 0.1)), c("a", "b", "c", "d"))
    collect(gapply(df, "a", function(key, x) { x }, schema(df)))
    collect(gapply(df, "a", function(key, x) { x }, schema(df)))
    ...  # 30 times
    ```
    
    Also, now it passes R tests on CentOS as below:
    
    ```
    SparkSQL functions: Spark package found in SPARK_HOME: .../spark
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ....................................................................................................................................
    ```
    
    Author: hyukjinkwon <gurwls223@gmail.com>
    
    Closes #18320 from HyukjinKwon/SPARK-21093.
    6b3d0228
    [SPARK-21093][R] Terminate R's worker processes in the parent of R's daemon to prevent a leak
    hyukjinkwon authored
    ## What changes were proposed in this pull request?
    
    `mcfork` in R looks opening a pipe ahead but the existing logic does not properly close it when it is executed hot. This leads to the failure of more forking due to the limit for number of files open.
    
    This hot execution looks particularly for `gapply`/`gapplyCollect`. For unknown reason, this happens more easily in CentOS and could be reproduced in Mac too.
    
    All the details are described in https://issues.apache.org/jira/browse/SPARK-21093
    
    This PR proposes simply to terminate R's worker processes in the parent of R's daemon to prevent a leak.
    
    ## How was this patch tested?
    
    I ran the codes below on both CentOS and Mac with that configuration disabled/enabled.
    
    ```r
    df <- createDataFrame(list(list(1L, 1, "1", 0.1)), c("a", "b", "c", "d"))
    collect(gapply(df, "a", function(key, x) { x }, schema(df)))
    collect(gapply(df, "a", function(key, x) { x }, schema(df)))
    ...  # 30 times
    ```
    
    Also, now it passes R tests on CentOS as below:
    
    ```
    SparkSQL functions: Spark package found in SPARK_HOME: .../spark
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ..............................................................................................................................................................
    ....................................................................................................................................
    ```
    
    Author: hyukjinkwon <gurwls223@gmail.com>
    
    Closes #18320 from HyukjinKwon/SPARK-21093.
Loading