Hi,
I am a macOS user. I am using the shell terminal to run a bash script from a pipeline, the script is linked to an R script, and when I run it I get the error below. From what I could figure out, the problem seems to be that R crashes/breaks when it is trying to load the library(S4Vectors) package. I have installed that package as stated on https://bioconductor.org/packages/release/bioc/html/S4Vectors.html and seemed to be fine. I have also uninstalled all R/R studio versions and installed the latest one, and did the same with all R packages, but I still ave the same error. Has anybody seen this before, or could give me a hand with this? Thanks,
Elena
Working directory is /Volumes/ECG_WORK/JC150_T0/results/step_5_output/RefSeq_results/org_results
Loading required package: S4Vectors
Loading required package: stats4
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: ‘BiocGenerics’
The following objects are masked from ‘package:parallel’:
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB
The following objects are masked from ‘package:stats’:
IQR, mad, sd, var, xtabs
The following objects are masked from ‘package:base’:
anyDuplicated, append, as.data.frame, basename, cbind, colMeans,
colnames, colSums, dirname, do.call, duplicated, eval, evalq,
Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply,
lengths, Map, mapply, match, mget, order, paste, pmax, pmax.int,
pmin, pmin.int, Position, rank, rbind, Reduce, rowMeans, rownames,
rowSums, sapply, setdiff, sort, table, tapply, union, unique,
unsplit, which, which.max, which.min
***** caught segfault ***
address 0x18, 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)}, 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), domain = NA) else stop(msg, call. = FALSE, domain = NA)})
8: library(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc, quietly = quietly)
9: .getRequiredPackages2(pkgInfo, quietly = quietly)
10: library(DESeq2)
An irrecoverable exception occurred. R is aborting now ...
Make sure that your installed packages are from the same release; either
or
It's not clear from your output why you think this is S4Vector's problem?
Hi,
The reason why it seems to be a problem with the S4Vector is that when I run
on the terminal, it shows that exact same error, whereas when I load
, BiocGenerics or parallel, they load fine.
Thanks for the recommendation on
as it seemed that 24 packages were out of date, I guess I didn't use the same release? and installed using the following command: although it seems that three packages cannot install through Bioconductors as they have errors.
How can I update those packages with Bioconductors? they don't seem to be in your https://bioconductor.org/packages/
Thanks,
E
The packages are CRAN packages. Normally, they can be updated with BiocManager, but likely these packages have system or other dependencies that are preventing their re-installation. The strategy is to try installing each individually and identifying what the problem is. If a 'configure' script runs and reports something like
'libuv-dev' not found
, then your task becomes finding and installing those system dependencies, typically through your operating system package manager.But before doing that, these are unlikely to be the problem, so I'd go back to S4Vectors and 'try again'. If there are still problems, then you'll want to investigate some more. I'd start by making sure you are in a new R session, and that there are no additional packages loaded. Print the output of sessionInfo(); I have
After I load S4Vectors, I have
So that in addition to S4Vectors, I have BiocGenerics and other packages loaded or attached; I guess you'll make some progress, and either BiocGenerics or S4Vectors will be problematic; I would suggest re-installing both via BiocManager.
The output of sessionInfo() is helpful in diagnosing problems, so it would be good to include that if you need further help.
Hi,
After re-installing the packages, when loading library(S4Vectors) seems to be OK after doing what you said (it does not show the error like it did at the beginning).Also loaded the packages "needed" from the initial error stats4, parallel, and BiocGeneric.
Here my current
But after re-loading the S4vectors with the BiocManager, it says :
And here is where I say "yes" and find the errors again.
When I run the script, I still have the initial error... Maybe there is something going on with those messages?
But happy I got the S4Vectors working now, one step at a time ;)
Hi again @Martin
I have tried re-installing all the packages from scratch using Bioconductors, and loading them (S4Vectors... etc).
The actual problem comes when after installing it, I load "DESeq2" Then R crashes and forces the program to abort/exit. From what I can see on the initial error, seems like DESeq could need some "getRequiredPackages2" ? I am sure the DESeq2 version you have on the https://www.bioconductor.org/packages/release/bioc/html/DESeq2.html is the latest one?
I have now installed all though bioconductor so shouldn't be a problem of having all packages installed form different sources?
Let me know what you think,
thanks a lot
Elena
In some ways I do not have a clear answer. You can try the following to start to narrow down to the specific package causing problems. From the traceback, you can 'see' that the code calls
library.dynam()
(load C or C++ code from a package). One of the arguments tolibrary.dynam()
ispackage
. You can convince R to print the value of the package argument each timelibrary.dynam()
is called using thetrace()
function. So start R, tracelibrary.dynam
, and try loading DESeq2.R will load libraries until it encounters an error; the last library printed will be the one causing problems. For me, with no problems, I see
A number of packages have C or C++ code, and for me all of them load without error.
You should try to install just httpuv
and examine the reason it fails to install. The messages about 'object is masked...' is not important in this context.
Thanks Martin, I have tried installing httpuv, stringis and RJSONIO with the Biocmanager command using mac terminal and it shows the same error as when updating them:
However, when I use it directly on R console, it does allow me to install them without problems, but again the error shows when loading library(DESeq2)... and forces R to abort the session.