Search code examples
rgdalarchlinuxrstudio-server

gdal seems to cause an illegal operation during install.packages("sf") within RStudio-Server on a ArchLinux server


I have recently starting using an old server.
We have installed AchLinux, and RStudio Server (2022.07.999 build 999) on the device. The server is running dual Xeon E5-2470 with 48GB RAM.

I'm trying to install.packages("sf") and during the installation I get the following:

** testing if installed package can be loaded from temporary location

 *** caught illegal operation ***
address 0x55b94289a1e0, cause 'unknown'

Traceback:
 1: CPL_gdal_init()
 2: load_gdal()
 3: fun(libname, pkgname)
 4: doTryCatch(return(expr), name, parentenv, handler)
 5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 6: tryCatchList(expr, classes, parentenv, handlers)
 7: tryCatch(fun(libname, pkgname), error = identity)
 8: runHook(".onLoad", env, package.lib, package)
 9: loadNamespace(package, lib.loc)
10: doTryCatch(return(expr), name, parentenv, handler)
11: tryCatchOne(expr, names, parentenv, handlers[[1L]])
12: tryCatchList(expr, classes, parentenv, handlers)
13: tryCatch({    attr(package, "LibPath") <- which.lib.loc    ns <- loadNamespace(package, lib.loc)    env <- attachNamespace(ns, pos = pos, deps, exclude, include.only)}, error = function(e) {    P <- if (!is.null(cc <- conditionCall(e)))         paste(" in", deparse(cc)[1L])    else ""    msg <- gettextf("package or namespace load failed for %s%s:\n %s",         sQuote(package), P, conditionMessage(e))    if (logical.return && !quietly)         message(paste("Error:", msg), domain = NA)    else stop(msg, call. = FALSE, domain = NA)})
14: library(pkg_name, lib.loc = lib, character.only = TRUE, logical.return = TRUE)
15: withCallingHandlers(expr, packageStartupMessage = function(c) tryInvokeRestart("muffleMessage"))
16: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,     character.only = TRUE, logical.return = TRUE))
17: doTryCatch(return(expr), name, parentenv, handler)
18: tryCatchOne(expr, names, parentenv, handlers[[1L]])
19: tryCatchList(expr, classes, parentenv, handlers)
20: tryCatch(expr, error = function(e) {    call <- conditionCall(e)    if (!is.null(call)) {        if (identical(call[[1L]], quote(doTryCatch)))             call <- sys.call(-4L)        dcall <- deparse(call, nlines = 1L)        prefix <- paste("Error in", dcall, ": ")        LONG <- 75L        sm <- strsplit(conditionMessage(e), "\n")[[1L]]        w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w")        if (is.na(w))             w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L],                 type = "b")        if (w > LONG)             prefix <- paste0(prefix, "\n  ")    }    else prefix <- "Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")    .Internal(seterrmessage(msg[1L]))    if (!silent && isTRUE(getOption("show.error.messages"))) {        cat(msg, file = outFile)        .Internal(printDeferredWarnings())    }    invisible(structure(msg, class = "try-error", condition = e))})
21: try(suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,     character.only = TRUE, logical.return = TRUE)))
22: tools:::.test_load_package("sf", "/home/trevor/R/x86_64-pc-linux-gnu-library/4.2/00LOCK-sf/00new")
An irrecoverable exception occurred. R is aborting now ...
ERROR: loading failed
* removing ‘/home/trevor/R/x86_64-pc-linux-gnu-library/4.2/sf’
Warning in install.packages :
  installation of package ‘sf’ had non-zero exit status

A similar error happens if I install.packages("rgdal").

I believe based on the above that there's an issue with the gdal package in ArchLinux, installed using pacman, we've installed all the optional parts of the package, but the errors still occur.

We have installed V3.5.0-4 of gdal as shown below:

pacman -Qi gdal
Name            : gdal
Version         : 3.5.0-4
Description     : A translator library for raster and vector geospatial data formats
Architecture    : x86_64
URL             : https://gdal.org/
Licenses        : custom
Groups          : None
Provides        : None
Depends On      : proj  blosc  crypto++  curl  libdeflate  expat  libfreexl  geos  libgeotiff  giflib  libjpeg-turbo
                  json-c  xz  libxml2  lz4  unixodbc  ocl-icd  openssl  pcre2  libpng  qhull  libspatialite  sqlite
                  libtiff  xerces-c  zlib  zstd
Optional Deps   : arrow: Arrow/Parquet support [installed]
                  cfitsio: FITS support [installed]
                  hdf5: HDF5 support [installed]
                  libheif: HEIF support [installed]
                  mariadb-libs: MySQL support [installed]
                  netcdf: netCDF support [installed]
                  openexr: EXR support [installed]
                  openjpeg2: JP2 support [installed]
                  podofo: PDF support [installed]
                  poppler: PDF support [installed]
                  postgresql-libs: PostgreSQL support [installed]
                  libwebp: WebP support [installed]
Required By     : python-gdal
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 27.98 MiB
Packager        : Bruno Pagani <[email protected]>
Build Date      : Fri Jul 1 21:44:46 2022
Install Date    : Sun Jul 24 16:22:48 2022
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

Can anyone help with this error?


Solution

  • The problem is the arrow package. https://github.com/apache/arrow/issues/12681

    The solution: is to rebuild the arrow package manually with flags -DARROW_SIMD_LEVEL=SSE4_2 or -DARROW_SIMD_LEVEL=NONE, depending on the instructions set supported by your CPU