Troubleshooting RStudio Server install problem

I am trying to install rstudio-server on a CentOS 7.7.1908 system. I've install the rpm. I received no response from the suggested URL so I followed the instructions to run this command:

sudo rstudio-server verify-installation

The output is:

13 Feb 2020 16:13:35 [rserver] ERROR system error 71 (Protocol error) [description=Unable to parse version from R, version-info=ARGUMENT 'sep=".")' ignored, r-error=Error: unexpected end of input
Execution halted
]; OCCURRED AT: rstudio::core::Error rstudio::core::r_util::rVersion(const rstudio::core::FilePath&, const rstudio::core::FilePath&, const string&, std::string*) /var/lib/jenkins/workspace/IDE/open-source-pipeline/v1.2-patch/src/cpp/core/r_util/REnvironmentPosix.cpp:802; LOGGED FROM: bool rstudio::core::r_util::detectREnvironment(const rstudio::core::FilePath&, const rstudio::core::FilePath&, const string&, std::string*, std::string*, rstudio::core::r_util::EnvironmentVars*, std::string*, const string&) /var/lib/jenkins/workspace/IDE/open-source-pipeline/v1.2-patch/src/cpp/core/r_util/REnvironmentPosix.cpp:696

It is unclear to me how to troubleshoot this. Can anyone suggest a course of action?

Can you answer the following questions? That should help us pin-point the issue:

  • Which RStudio Server version did you install? Pro or OS?
  • Which URL did you try to access?
  • How and where did you install R?

Note that the recommended way to install R for the Pro products is via the binary packages at https://docs.rstudio.com/resources/install-r/.

I installed the free version of RStudio Server for CentOS. The specific download was:

rstudio-server-rhel-1.2.5033-x86_64.rpm

The URL I tried to access used the hostname of the server I installed it on: http://xxxxxx.tyson.com:8787

The version of R I currently have installed is 3.4.2. It was compiled from source. We have 6 Linux server (3 CentOS and 3 Ubuntu). Instead of installing pre-built R on each of the servers I build R in a globally shared location accessible from all of our servers.

Thanks for the information. What is the output of

R --slave --vanilla -e 'cat(R.Version()$major,R.Version()$minor, sep=".")'

when executed on the CentOS machine?

Thanks Ralf!!! Your question led me to solve this particular issue. When I ran the command you provided I got this:

R --slave --vanilla -e 'cat(R.Version()$major,R.Version()$minor, sep=".")'
ARGUMENT 'sep=".")' __ignored__

Error: unexpected end of input
Execution halted

That told me that these complex arguments were not being passed properly to the R command. Because I am trying to support all of our Linux servers with one shared /usr/local directory, my "/usr/local/bin/R" is a script pointing to /usr/local/src/R-3.4.2/CentOS/bin/R. Where my script passes any supplied command line arguments to the R in the build directory:

I had to change this in my script:

$release/${RPATH[$hostname]}/bin/R $@

to this:

$release/${RPATH[$hostname]}/bin/R "$@"

Now I get the expected results:
R --slave --vanilla -e 'cat(R.Version()$major,R.Version()$minor, sep=".")'
3.4.2

So, this particular issue is solved. When I run the "verify-installation" script, I get no output (which I assume is correct?):

sudo rstudio-server verify-installation

However, I am still not able to access RStudio using the suggested URL. I get a "connection timed out" error.

I am assuming I now need to look at firewall rules.

The installation is ok if sudo rstuo-server verify-installation returns nothing. However, this also means that RStudio server is currently not running. Otherwise you would get

 # rstudio-server verify-installation
Server is running and must be stopped before running verify-installation

So, did you start RStudio server with sudo rstudio-server start before trying to access it via the web browser?

If you have started the RStudio server, you can check whether it is listening on the expected port using netstat -natp.

Working through the RStudio installation has been quite challenging. Every step seems to present a new problem. However, your help has been extremely useful. Thank you very much for helping me along. Here is the current state of things:

  1. RStudio (free version) has been installed
  2. The verify-installation tool error message has been resolved (argument passing issue)
  3. I now know how to start and stop the RStudio server using "rstudio-server start" or "rstudio-server stop"
  4. Problems accessing RStudio from a web browser were resolved with a crash course in the firewall-cmd. I've created a service.xml named "RStudio.xml" and configured the port to be 8787. Once that was in place and configured I now see a login prompt when going to the http://xxxxx:8787/ URL.
  5. I am currently stuck at the login prompt. It won't accept my login credentials that I use for logging into the Linux systems. I'm sure I need to set up or configure something. Any hints would be appreciated.

I figured out the login problem. It had to do with the acceptable UID range.

/etc/pam.d/rstudio contains:
auth requisite pam_succeed_if.so uid >= 500 quiet

But, /etc/login.defs has:
UID_MIN 1000

So, I added:
auth-minimum-user-id=500
to the /etc/rstudio/rserver.conf file

Also, the RStudio/PAM documentation states that:

The pamtester utility is located at /usr/lib/rstudio-server/bin/pamtester .

However, this utility was not part of the free version that I installed.

1 Like