Internet routines not loading in RStudio, but do at console.

Running with same environment, env variables, .libPaths().

In RStudio Server:

> source('https://gist.githubusercontent.com/abalter/a3e8fa6dec1103a59fea7d5cd32affc6/raw/4e61092389218141d4ff2d7267b0d4f198484695/test.R')
Error in file(filename, "r", encoding = encoding) : 
  internet routines cannot be loaded

At console:

> source('https://gist.githubusercontent.com/abalter/a3e8fa6dec1103a59fea7d5cd32affc6/raw/4e61092389218141d4ff2d7267b0d4f198484695/test.R')
[1] "hello"
>

Test file: https://gist.github.com/abalter/a3e8fa6dec1103a59fea7d5cd32affc6

What do you mean by running in Rstudio Server?

This works just fine for me in Rstudio Server linux version 1.2.1240

We are working on two completely different systems. I would not expect the same behavior. I'm not saying it's a problem with the core source code of RStudio Server.

My output clearly shows what I see in RStudio Server and at the console.

It does seem to have something to do with the way RStudio loads my environment vs the console. That is what I need help tracking down.

Ok, but you are not giving too much information to work with, besides that test file.

Maybe if you share the content of your rstudio-server init file (e.g. /etc/init.d/rstudio-server on debian)
Also, do you install packages system wide or in your specific user library path? have you tried updating curl()package?

Looking at R's sources, I see that error message in places like the following:

and R is attempting to initialize internet routines here:

and it looks like it's attempting to dynamically load a module called internet.so. So you need to figure out where that module lives on your machine, and why R cannot find it (I suspect you have some custom environment / modifications to e.g. LD_LIBRARY_PATH affecting module lookup)

(deseq) balter@spectre3:~$ cat /etc/init.d/rstudio-server
#! /bin/bash
### BEGIN INIT INFO
# Provides:          rstudio-server
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: RStudio Server
# Description:       RStudio Server provides a web interface to R
### END INIT INFO

# Author: RStudio <info@rstudio.com>
#

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
#PATH=/home/balter/conda/bin:/sbin:/usr/sbin:/bin:/usr/bin
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="RStudio Server"
NAME=rserver
DAEMON=/usr/lib/rstudio-server/bin/rserver
SCRIPTNAME=/etc/init.d/rstudio-server

source /home/balter/conda/etc/profile.d/conda.sh
conda activate

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --exec $DAEMON \
                || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        return "$RETVAL"
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac

:

Conda environments do a lot of gymnastics to sandbox processes from system libraries so you might need to inspect what Conda is doing here.

1 Like

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.