| Summary: | FIXED IN SVN: UNIX ONLY: library(rcdklibs) crashes RKWard | ||
|---|---|---|---|
| Product: | [Applications] rkward | Reporter: | Thomas Friedrichsmeier <thomas.friedrichsmeier> |
| Component: | general | Assignee: | RKWard Team <rkward-devel> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | All | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Thomas Friedrichsmeier
2009-06-24 11:05:41 UTC
-- Originally posted by (AT sourceforge.net): rtautenh --
Since the problem is related to rJava, it's probably the same for any rJava based package.
e.g. library\(xlsx\):
Loading required package: xlsxjars
Loading required package: rJava
\*\*\* caught segfault \*\*\*
address 0x7f1d917d9aa0, cause 'invalid permissions'
Traceback:
1: .External\(interface, obj@jobj, returnSig, method, ..., PACKAGE = "rJava"\)
2: .jcall\(ic, "Ljava/lang/reflect/Field;", "getField", "TYPE"\)
3: .jinit\(\)
4: .jpackage\(pkgname\)
5: fun\(...\)
6: doTryCatch\(return\(expr\), name, parentenv, handler\)
7: tryCatchOne\(expr, names, parentenv, handlers\[\[1L\]\]\)
8: tryCatchList\(expr, classes, parentenv, handlers\)
9: 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 <- paste\(prefix, "\n ", sep = ""\) \} else prefix <- "Error : " msg <- paste\(prefix, conditionMessage\(e\), "\n", sep = ""\) .Internal\(seterrmessage\(msg\[1L\]\)\) if \(\!silent && identical\(getOption\("show.error.messages"\), TRUE\)\) \{ cat\(msg, file = stderr\(\)\) .Internal\(printDeferredWarnings\(\)\) \} invisible\(structure\(msg, class = "try-error"\)\)\}\)
10: try\(\{ fun\(...\) NULL\}\)
11: runHook\(".onLoad", package, env, package.lib, package\)
12: loadNamespace\(package, c\(which.lib.loc, lib.loc\), keep.source = keep.source\)
13: doTryCatch\(return\(expr\), name, parentenv, handler\)
14: tryCatchOne\(expr, names, parentenv, handlers\[\[1L\]\]\)
15: tryCatchList\(expr, classes, parentenv, handlers\)
16: 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 <- paste\(prefix, "\n ", sep = ""\) \} else prefix <- "Error : " msg <- paste\(prefix, conditionMessage\(e\), "\n", sep = ""\) .Internal\(seterrmessage\(msg\[1L\]\)\) if \(\!silent && identical\(getOption\("show.error.messages"\), TRUE\)\) \{ cat\(msg, file = stderr\(\)\) .Internal\(printDeferredWarnings\(\)\) \} invisible\(structure\(msg, class = "try-error"\)\)\}\)
17: try\(\{ ns <- loadNamespace\(package, c\(which.lib.loc, lib.loc\), keep.source = keep.source\) dataPath <- file.path\(which.lib.loc, package, "data"\) env <- attachNamespace\(ns, pos = pos, dataPath = dataPath\)\}\)
18: library\(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc\)
19: .getRequiredPackages2\(pkgInfo\)
20: library\(xlsx\)
In the SVN version, the R backend now runs in a separate process \(at least by default\). This fixes the incompatiblities with rJava and RGtk2 on X11. Please test\! - **summary**: UNIX ONLY: library(rcdklibs) crashes RKWard --> FIXED IN SVN: UNIX ONLY: library(rcdklibs) crashes RKWard - **status**: open --> open-fixed - **status**: open-fixed --> closed-fixed |