Search code examples
rmemoryrstudiorstudio-server

Cstack_info() output different between Rstudio Server and Rstudio Desktop on Ubuntu 20.04LTS


I am having trouble getting rid of the CStack limit when running my code. I managed to get rid of the error by appending

* hard stack unlimited
* soft stack unlimited
* soft memlock unlimited
* hard memlock unlimited

root soft stack unlimited
root hard stack unlimited
root soft memlock unlimited
root hard memlock unlimited

to /etc/security/limits.conf which fixes the problem on RStudio Desktop.

I get the following output from running Cstack_info()

> Cstack_info()
      size    current  direction eval_depth 
        NA         NA          1          2 

This is the output from ulimit -s on the desktop terminal

coolshades@coolshades-ws:~$ ulimit -s
unlimited

Code runs perfectly on RStudio Desktop.

On the same machine, I also am running RStudio Server (free) to run code remotely. It would seem that these settings are not sticking when running RStudio Server.

This is the output from Cstack_info() on the RStudio Server

> Cstack_info()
      size    current  direction eval_depth 
   7969177      26336          1          2 

This is the ulimit output from terminal on the RStudio Server

coolshades@coolshades-ws:~$ ulimit -s
8192

I am able to change the limit back to unlimited with ulimit -s unlimited. But it will only kick in after Rsession is restarted. However, when I restart the R session, the output of ulimit -s reverts back to 8192.

I am out of ideas as to how best to tackle this problem and hope a more experienced RStudio Server user will be able to advise on this matter.


Solution

  • I have solved this problem.

    I had to make the following changes to the following files:

    sudo nano /etc/systemd/user.conf add DefaultLimitSTACK=134217728

    sudo nano /etc/systemd/system.conf add DefaultLimitSTACK=134217728

    Make sure the number you define is a power of 2, else Ubuntu fails to login for some reason.

    I have 128GB of RAM. So I have set my limit to 2^27.

    Hope this helps someone with the same problem.