[ 
https://issues.apache.org/jira/browse/ARROW-11963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17302991#comment-17302991
 ] 

Neal Richardson commented on ARROW-11963:
-----------------------------------------

Thanks. This kind of failure often means that the compiler that built the Arrow 
C++ library is not the same as the one that R used to compile the package. When 
you just do `install.packages("arrow")` without installing the C++ library 
separately, it will build with the matching compiler and flags. I'm not sure 
why that installation failed for you, but if you look at the docs link that the 
error message suggested 
(https://arrow.apache.org/docs/r/articles/install.html#troubleshooting), there 
are a few possibilities. 

Among the options now:

1. Check out what {{R CMD config CXX11}} says, and check that it matches the 
compiler from your cmake output (gcc 10 I believe I saw, it's at the top). If 
that doesn't match, you can set CC and CXX to match what R has set and retry 
the C++ library build. (See 
https://github.com/apache/arrow/blob/master/r/tools/linuxlibs.R#L317-L318 for 
reference.)
2. Uninstall the Arrow C++ library you built, set the env var 
{{ARROW_R_DEV=true}} for more verbosity on the build, retry the bundled build 
with install.packages("arrow"), and let's see why that failed. Even if #1 works 
for you, I would be interested to see this if you don't mind--we work hard so 
that this doesn't happen, and I'd like to know more so we can fix it.

> Arrow installation issue with R 4.0.4 on Fedora 33
> --------------------------------------------------
>
>                 Key: ARROW-11963
>                 URL: https://issues.apache.org/jira/browse/ARROW-11963
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: R
>    Affects Versions: 3.0.0
>         Environment: Linux, Fedora 33
>            Reporter: Ahmed Riza
>            Priority: Major
>         Attachments: R_arrow_install.log.gz, R_arrow_install_clean.log.gz, 
> cmake.log, make.log.gz
>
>
> I have been trying to install "arrow" package, using R 4.0.4 on Linux (Fedora 
> 33).  I have built and installed the C++ arrow libraries (using release 
> version 3.0.0) following the instructions at 
> [https://arrow.apache.org/docs/r/.|https://arrow.apache.org/docs/r/]
> Then, from R, I tried to install "arrow":
> {code:java}
>  install.packages("arrow"){code}
> This fails during the verification stage:
> {code:java}
> ** testing if installed package can be loaded from temporary location 
>  sh: line 1:  8386 Segmentation fault      (core dumped) R_TESTS= 
> '/usr/lib64/R/bin/R' --no-save --no-restore --no-echo 2>&1 < 
> '/tmp/RtmpWtq6vV/file1f4b570a7335'
> caught segfault ***
>  address (nil), cause 'memory not mapped'
> Traceback:
>  1: dyn.load(file, DLLpath = DLLpath, ...)
>  2: library.dynam(lib, package, package.lib)
>  3: loadNamespace(package, lib.loc)
>  4: doTryCatch(return(expr), name, parentenv, handler)
>  5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
>  6: tryCatchList(expr, classes, parentenv, handlers)
>  7: 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)         
> message(paste("Error:", msg), do
> main = NA)    else stop(msg, call. = FALSE, domain = NA)})
>  8: library(pkg_name, lib.loc = lib, character.only = TRUE, logical.return = 
> TRUE)
>  9: withCallingHandlers(expr, packageStartupMessage = function(c) 
> tryInvokeRestart("muffleMessage"))
> 10: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,     
> character.only = TRUE, logical.return = TRUE))
> 11: doTryCatch(return(expr), name, parentenv, handler)
> 12: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> 13: tryCatchList(expr, classes, parentenv, handlers)
> 14: 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)[1L]        prefix 
> <- past
> e("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))})
> 15: try(suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,     
> character.only = TRUE, logical.return = TRUE)))
> 16: tools:::.test_load_package("arrow", 
> "/work/R/x86_64-redhat-linux-gnu-library/4.0/00LOCK-arrow/00new")
> An irrecoverable exception occurred. R is aborting now ...
> ERROR: loading failed
> {code}
> R version info:
> {code:java}
> R version 4.0.4 (2021-02-15) -- "Lost Library Book"
> Copyright (C) 2021 The R Foundation for Statistical Computing
> Platform: x86_64-redhat-linux-gnu (64-bit)
> {code}
> Any thoughts on where to look? (I can only get arrow to work with the latest 
> development version of R and not the release version of 4.0.4).  Thanks.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to