Question: segmentation faults flowMeans and flowStats
1
gravatar for frederiekmaarten.kerckhof
3.1 years ago by

Dear all,

While trying to upgrade flowStats and flowMeans on an Ubuntu 16.04 LTS system I am experiencing segfaults and I don't know what is causing it or how to resolve the issues.

My sessionInfo() output is:

R version 3.3.2 (2016-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.1 LTS

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] BiocInstaller_1.24.0

loaded via a namespace (and not attached):
[1] tools_3.3.2

And I am using bioconductor 3.4.

The complete error traceback is the following (for flowStats, but looks comparable for flowMeans):

> biocLite("flowStats")
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31).
Installing package(s) ‘flowStats’
trying URL 'https://bioconductor.org/packages/3.4/bioc/src/contrib/flowStats_3.32.0.tar.gz'
Content type 'application/x-gzip' length 4154422 bytes (4.0 MB)
==================================================
downloaded 4.0 MB

* installing *source* package ‘flowStats’ ...
** R
** data
** inst
** preparing package for lazy loading
Warning in rgl.init(initValue, onlyNULL) :
  RGL: unable to open X11 display
Warning: 'rgl_init' failed, running with rgl.useNULL = TRUE

 *** caught segfault ***
address 0x20, cause 'memory not mapped'

Traceback:
 1: .Call(Module__functions_names, xp)
 2: Module(module, mustStart = TRUE, where = env)
 3: doTryCatch(return(expr), name, parentenv, handler)
 4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 5: tryCatchList(expr, classes, parentenv, handlers)
 6: tryCatch(Module(module, mustStart = TRUE, where = env), error = function(e) e)
 7: loadModule(module = "Multicool", what = TRUE, env = ns, loadNow = TRUE)
 8: (function (ns) loadModule(module = "Multicool", what = TRUE, env = ns, loadNow = TRUE))(<environment>)
 9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: tryCatch((function (ns) loadModule(module = "Multicool", what = TRUE, env = ns, loadNow = TRUE))(<environment>),     error = function(e) e)
13: eval(expr, envir, enclos)
14: eval(substitute(tryCatch(FUN(WHERE), error = function(e) e),     list(FUN = f, WHERE = where)), where)
15: .doLoadActions(where, attach)
16: methods::cacheMetaData(ns, TRUE, ns)
17: loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]])
18: namespaceImport(ns, loadNamespace(i, c(lib.loc, .libPaths()),     versionCheck = vI[[i]]), from = package)
19: loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]])
20: asNamespace(ns)
21: namespaceImportFrom(ns, loadNamespace(j <- i[[1L]], c(lib.loc,     .libPaths()), versionCheck = vI[[j]]), i[[2L]], from = package)
22: loadNamespace(package, lib.loc, keep.source, partial = TRUE)
23: withCallingHandlers(expr, packageStartupMessage = function(c) invokeRestart("muffleMessage"))
24: suppressPackageStartupMessages(loadNamespace(package, lib.loc,     keep.source, partial = TRUE))
25: code2LazyLoadDB(package, lib.loc = lib.loc, keep.source = keep.source,     compress = compress)
26: makeLazyLoading(pkg_name, lib, keep.source = keep.source)
27: doTryCatch(return(expr), name, parentenv, handler)
28: tryCatchOne(expr, names, parentenv, handlers[[1L]])
29: tryCatchList(expr, classes, parentenv, handlers)
30: 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 <- paste("Error in", dcall, ": ")        LONG <- 75L        msg <- conditionMessage(e)        sm <- strsplit(msg, "\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 && identical(getOption("show.error.messages"),         TRUE)) {        cat(msg, file = stderr())        .Internal(printDeferredWarnings())    }    invisible(structure(msg, class = "try-error", condition = e))})
31: try({    suppressPackageStartupMessages(.getRequiredPackages(quietly = TRUE))    makeLazyLoading(pkg_name, lib, keep.source = keep.source)})
32: do_install_source(pkg_name, instdir, pkg, desc)
33: do_install(pkg)
34: tools:::.install_packages()
An irrecoverable exception occurred. R is aborting now ...
Segmentation fault (core dumped)

The downloaded source packages are in
        ‘/tmp/RtmpGwm5X7/downloaded_packages’
Warning message:
In install.packages(pkgs = doing, lib = lib, ...) :
  installation of package ‘flowStats’ had non-zero exit status

The rgl is because I am running headless on an ubuntu server (but visualisation is done via rstudio server).

Thanks in advance for any suggestions

flowstats flow cytometry • 726 views
ADD COMMENTlink written 3.1 years ago by frederiekmaarten.kerckhof10

Hi,

Both flowStats and flowMeans are clean on linux in release and devel and I'm able to install both without error.

http://www.bioconductor.org/checkResults/devel/bioc-LATEST/  ## devel report

http://www.bioconductor.org/checkResults/release/bioc-LATEST/  ## release report

Biocondcutor 3.4 (release) works with R 3.3.1 and Bioconductor 3.5 (devel) works versions > 3.3.1. I see you have R 3.3.2 (corresponds to Bioconductor 3.5 devel) but are installing release packages. I'm not sure this is the problem but it's best to get the versions sorted out. R 3.3.2 should be using BiocInstaller 1.2.5*. See http://www.bioconductor.org/install/ for more help. Once the versions are sorted out let us know if you still have the problem.

Valerie

ADD REPLYlink written 3.1 years ago by Valerie Obenchain6.7k

Dear Valerie,

When trying to install biocInstaller 1.25.2 I noticed that I had to have R 3.4.0 or higher installed (hence not 3.3.2) (http://bioconductor.org/packages/devel/bioc/html/BiocInstaller.html).

R 3.3.2 is the current release version of R (not devel) so I would like to keep this as my current R (and not downgrade). It appears as there is no BiocInstaller available on the bioconductor website for R versions between R 3.3.1 and R 3.4.0.

Could you let me know how to resolve this issue?

Kind regards,

Frederiek - Maarten

 

ADD REPLYlink written 3.1 years ago by frederiekmaarten.kerckhof10

Sorry, my mistake. Bioconductor 3.4 (release) is compatible with 3.3.1 and patched versions such as 3.3.2, future 3.3.3 etc. We need to update our documentation!

With a fresh install of R 3.3.2 and BiocInstaller 1.24.0 I was able to biocLite("flowStats") and load it without error. Unfortunately I don't have much experience with rgl so can't be of much help there - though I'm not sure that's related to the segfault. Maybe someone else has another suggestion.

Valerie

> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Fedora 24 (Workstation Edition)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] splines   stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
 [1] flowStats_3.32.0          flowWorkspace_3.20.0     
 [3] ncdfFlow_2.20.0           BH_1.60.0-2              
 [5] RcppArmadillo_0.7.500.0.0 cluster_2.0.5            
 [7] fda_2.4.4                 Matrix_1.2-7.1           
 [9] flowCore_1.40.0           BiocInstaller_1.24.0     

loaded via a namespace (and not attached):
 [1] rgl_0.96.0          Rcpp_0.12.7         mvtnorm_1.0-5      
 [4] lattice_0.20-34     corpcor_1.6.8       assertthat_0.1     
 [7] digest_0.6.10       mime_0.5            R6_2.2.0           
[10] plyr_1.8.4          chron_2.3-47        stats4_3.3.2       
[13] pcaPP_1.9-61        zlibbioc_1.20.0     misc3d_0.8-4       
[16] data.table_1.9.6    Rgraphviz_2.18.0    hexbin_1.27.1      
[19] stringr_1.1.0       htmlwidgets_0.8     munsell_0.4.3      
[22] shiny_0.14.2        httpuv_1.3.3        BiocGenerics_0.20.0
[25] IDPmisc_1.1.17      htmltools_0.3.5     multicool_0.1-9    
[28] tibble_1.2          gridExtra_2.2.1     codetools_0.2-15   
[31] matrixStats_0.51.0  XML_3.98-1.5        flowViz_1.38.0     
[34] rrcov_1.4-3         dplyr_0.5.0         MASS_7.3-45        
[37] grid_3.3.2          jsonlite_1.1        xtable_1.8-2       
[40] gtable_0.2.0        DBI_0.5-1           magrittr_1.5       
[43] scales_0.4.1        graph_1.52.0        KernSmooth_2.23-15 
[46] stringi_1.1.2       latticeExtra_0.6-28 robustbase_0.92-6  
[49] RColorBrewer_1.1-2  tools_3.3.2         Biobase_2.34.0     
[52] DEoptimR_1.0-6      ks_1.10.4           parallel_3.3.2     
[55] colorspace_1.3-0    knitr_1.15         
ADD REPLYlink written 3.1 years ago by Valerie Obenchain6.7k

Hi, the rgl error is due to running headless. When I use X11 forwarding I do not get the rgl error message, but still the segfault persists. I hope the error is not with Ubuntu 16.04.1 LTS, since you are using Fedora 24 (although the links you sent me did show R 3.3.1 on 16.04.1 LTS).  I will evaluate on another system with Ubuntu 14 LTS.

ADD REPLYlink written 3.1 years ago by frederiekmaarten.kerckhof10

I could not replicate the issue on Ubuntu 14.04.5 LTS: flowStats installation ran smoothly. My sessionInfo is the following:

R version 3.3.2 (2016-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS

locale:
 [1] LC_CTYPE=en_IE.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_IE.UTF-8        LC_COLLATE=en_IE.UTF-8
 [5] LC_MONETARY=en_IE.UTF-8    LC_MESSAGES=en_IE.UTF-8
 [7] LC_PAPER=en_IE.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_IE.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] BiocInstaller_1.24.0

loaded via a namespace (and not attached):
[1] tools_3.3.2

 

ADD REPLYlink written 3.1 years ago by frederiekmaarten.kerckhof10

It seems like the problem is from

loadNamespace("multicool")

Is that enough to trigger the segfault? Since multicool is installed, it implies that it did once install successfully, so maybe you've updated a system dependency and re-installing multicool will be enough?  (flowStats installs for me on R-devel, Ubuntu 16.04). 

ADD REPLYlink written 3.1 years ago by Martin Morgan ♦♦ 24k

Dear Martin, thank you very much. Re-installing multicool completely resolved the problem! I should have seen it in the traceback, my apologies and thank you for your support.

ADD REPLYlink written 3.1 years ago by frederiekmaarten.kerckhof10
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 173 users visited in the last hour