Miguel Esteva
2024-May-03 00:42 UTC
[R] grDevices segfault when building R4.4.0 on RHEL 9.1.
Hi all,
I seem to be getting segfaults when attempting to build R 4.4.0 on RHEL 9.1
(5.14.0-162.23.1.el9_1.x86_64). Interestingly, it seems to build ok on Rocky 9.1
and 9.3. This is the trace:
make[3]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
building package 'grDevices'
make[4]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
all.R is unchanged
make[4]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
make[4]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
make[5]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src'
make[6]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src'
../../../../library/grDevices/libs/grDevices.so is unchanged
make[7]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src/cairo'
make[8]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src/cairo'
make[9]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src/cairo'
make[9]: 'cairo.so' is up to date.
make[9]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src/cairo'
make[8]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src/cairo'
make[7]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src/cairo'
make[6]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src'
make[5]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices/src'
make[4]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
make[4]: Entering directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
byte-compiling package 'grDevices'
*** caught segfault ***
address 0x1801fa8f70, cause 'memory not mapped'
Traceback:
1: solve.default(rgb)
2: solve(rgb)
3: drop(whitexyz %*% solve(rgb))
4: make.rgb(red = c(0.625, 0.34), green = c(0.28, 0.595), blue = c(0.155,
0.07), gamma = 1.8, white = "D65", name = "Apple RGB")
5: eval(exprs[i], envir)
6: eval(exprs[i], envir)
7: sys.source(codeFile, env, keep.source = keep.source, keep.parse.data =
keep.parse.data)
8: doTryCatch(return(expr), name, parentenv, handler)
9: tryCatchOne(expr, names, parentenv, handlers[[1L]])
10: tryCatchList(expr, classes, parentenv, handlers)
11: 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))})
12: try(sys.source(codeFile, env, keep.source = keep.source, keep.parse.data =
keep.parse.data))
13: loadNamespace(package = package, lib.loc = lib.loc, keep.source =
keep.source, keep.parse.data = keep.parse.data, partial = TRUE)
14: withCallingHandlers(expr, packageStartupMessage = function(c)
tryInvokeRestart("muffleMessage"))
15: suppressPackageStartupMessages(loadNamespace(package = package, lib.loc
= lib.loc, keep.source = keep.source, keep.parse.data = keep.parse.data,
partial = TRUE))
16: code2LazyLoadDB(package, lib.loc = lib.loc, keep.source = keep.source,
keep.parse.data = keep.parse.data, compress = compress, set.install.dir =
set.install.dir)
17: tools:::makeLazyLoading("grDevices")
An irrecoverable exception occurred. R is aborting now ...
make[4]: *** [../../../share/make/lazycomp.mk:9:
../../../library/grDevices/R/grDevices.rdb] Error 139
make[4]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
make[3]: *** [Makefile:28: all] Error 2
make[3]: Leaving directory
'/home/esteva.m/R/R-4.4.0/src/library/grDevices'
make[2]: *** [Makefile:39: R] Error 1
make[2]: Leaving directory '/home/esteva.m/R/R-4.4.0/src/library'
make[1]: *** [Makefile:28: R] Error 1
make[1]: Leaving directory '/home/esteva.m/R/R-4.4.0/src'
make: *** [Makefile:62: R] Error 1
Has anyone run into this?
cairo-1.17.4-7.el9.x86_64
cairo-gobject-1.17.4-7.el9.x86_64
cairo-devel-1.17.4-7.el9.x86_64
cairo-gobject-devel-1.17.4-7.el9.x86_64
pango-1.48.7-3.el9.x86_64
pango-devel-1.48.7-3.el9.x86_64
Cheers,
Miguel Esteva
[WEHI Logo]
Walter and Eliza Hall Institute of Medical Research
1G Royal Parade Parkville Victoria 3052 Australia
www.wehi.edu.au<https://wehi.edu.au>
Twitter<https://twitter.com/WEHI_research> |
Facebook<https://www.facebook.com/WEHIresearch/> |
Instagram<https://www.instagram.com/wehi_research> |
Youtube<https://www.youtube.com/user/WEHImovies> |
LinkedIn<https://www.linkedin.com/company/wehi_research>
WEHI acknowledges the Wurundjeri people of the Kulin Nation as the traditional
owners of the land where our campuses are located and the continuing connection
to country and community.
Private and confidential
The content of this e-mail and any attachments may be private and confidential,
intended only for use of the individual or entity named. If you are not the
intended recipient of this message you must not read, forward, print, copy,
disclose, use or store in any way the information this e-mail or any attachment
contains. If you are not the intended recipient, please notify the sender
immediately and delete or destroy all copies of this e-mail and any attachment.
[[alternative HTML version deleted]]
Ivan Krylov
2024-May-03 11:40 UTC
[R] grDevices segfault when building R4.4.0 on RHEL 9.1.
Dear Miguel Esteva, I couldn't get a Red Hat "ubi9" container to install enough dependencies to build R. Is there a way to reproduce your setup on a virtual machine somewhere? On Fri, 3 May 2024 00:42:43 +0000 Miguel Esteva via R-help <r-help at r-project.org> wrote:> *** caught segfault *** > > address 0x1801fa8f70, cause 'memory not mapped' > > > Traceback: > > 1: solve.default(rgb)This seems to crash inside the BLAS. Which BLAS are you using? Any custom ./configure arguments? Which compilers are you running? To find out more information about the crash, try to follow it with a debugger. Change directory to src/library/grDevices and run: _R_COMPILE_PKGS_=1 R_COMPILER_SUPPRESS_ALL=1 \ R_DEFAULT_PACKAGES=NULL LC_ALL=C \ ../../../bin/R -d gdb --vanilla --no-echo -e \ 'tools:::makeLazyLoading("grDevices")' (This assumes building straight from the source directory. Adjust the paths if you're using a separate build directory.) Use the "run" command to start the process. One you see a crash, use "backtrace" to see the state of the call stack at the place of the crash, or "backtrace full" to include the contents of local variables. The first few entries are probably the most important ones. Not sure what to do with this information yet, but it might provide more clues. -- Best regards, Ivan