Symptoms
Assume that you use the Microsoft R to import data from a source into a data frame. If the size of the resultant data frame is larger than 4 GB, the operation fails.
The following is a short list of known failed Rx functions. Other Rx and Open Source functions may also be affected.-
rxImport()
-
rxDataStep()
-
RxXdfData()
If you receive an error message that resembles the following, you can apply this patch:
Error in doTryCatch(return(expr), name, parentenv, handler) :
message header: expected <size of data frame> got
Resolution
Download information
For Windows:
Revolution Analytics 7.4.1 - Download link
Microsoft R Server 8.0.0 - Download link
Microsoft R Server 8.0.3 - Download link
For Linux:
Revolution Analytics 7.4.1 - Download link
Microsoft R Server 8.0.0 - Download link
Microsoft R Server 8.0.5 - Download link To resolve this issue, follow the instructions below to apply the fix. Required files:
-
RevoScaleR_8.0.X.tar.gz (Linux) or RevoScaleR_8.0.X.zip (Microsoft), where X = the version number of Microsoft R Server (MRS) installed on the system to patch.
-
libRxLink.so.2 (Linux) or RxLink.dll (Microsoft, should be inside the .zip file)
Note: Microsoft Windows/Server users must add R to their PATH variable to run the following commands.
Note: In all instructions, version is listed as 8.0.X, replace X with your version number.-
Put the required files in a temp directory, where the user who applies the patch has read/write permissions.
-
Launch a Command Line Interface with elevated permissions.
-
In Microsoft, launch an instance of Command Prompt as an administrator by right-clicking the Command Prompt icon and clicking Run as administrator.
-
In Linux, launch a terminal, and then use sudo to execute commands.
-
-
Uninstall the current RevoScaleR package.
-
In Microsoft, run the following command: R CMD REMOVE "RevoScaleR"
-
In Linux, run the following command: sudo R CMD REMOVE "RevoScaleR"
-
-
Stop the BxlServer process and all other R processes.
-
In Microsoft, use Task Manager to stop BxlServer and Rterm.
-
In Linux, either use "kill" or top to stop BxlServer and R.
-
-
Install the new package from the RevoScaleR archive.
-
In Microsoft, run the command: R CMD INSTALL --no-test-load <path/to/dir>/RevoScaleR_8.0.X.zip
-
In Linux, run the command: sudo R CMD INSTALL --no-test-load <path/to/dir> /RevoScaleR_8.0.X.tar.gz
-
-
Copy the RxLink Library file to your RevoScaleR directory.
-
In Microsoft, use File Explorer to verify that RxLib.dll is present in “<path to R Home>/RevoScaleR/rxLibs/x64/ “ if it isn't copy the file RxLib.dll from inside the .zip file to the <path to R Home>/RevoScaleR/rxLibs/x64/ directory. On a standard installation, this path would be as follows: C:\Program Files\Microsoft\MRO-for-RRE\8.0\R-3.2.2\library\RevoScaleR\rxLibs\x64
-
In Linux, run the command: sudo cp <path/to/dir>/libRxLink.so.2 \ <path/to/R_dir>/library/RevoScaleR/rxLibs/x64/ where <path/to/R-dir> on a standard install would be as follows: /usr/lib64/MRO-for-MRS-8.0.X/R-3.2.2/lib64/R
-
-
Launch R, and import a Data Frame that's over 4 GB to validate that the patch is applied.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminology that Microsoft uses to describe software updates.
Applies to
This issue occurs on the following versions of Microsoft R Server:
-
Microsoft R Server 8.0.3 on Windows
-
Microsoft R Server 8.0.5 on Linux