[R-SIG-Mac] Local source pkg interacts strangely with sessionInfo, causing R to crash
Simon Urbanek
simon.urbanek at r-project.org
Fri Mar 29 15:52:52 CET 2013
tcltk currently doesn't work with the R GUI. It seems to be a problem with the native Tcl/Tk libraries in OS X. In previous version we used X11 instead - if we won't find a way to fix this, we'll probably revert to the X11 version.
Cheers,
Simon
On Mar 29, 2013, at 10:30 AM, Bryan Hanson wrote:
> I'm not sure if this is an Rgui issue or Mac only issue, or an R 3.0.0 RC problem, or a problem with the pkg. I'll start here.
>
> I am updating my package ChemoSpec to work with R 3.0.0 With the following sessionInfo I can install the old version of ChemoSpec from a CRAN repos and it works fine:
>
> [R.app GUI 1.60 (6457) x86_64-apple-darwin10.8.0]
>
>> sessionInfo()
> R version 3.0.0 RC (2013-03-27 r62426)
> Platform: x86_64-apple-darwin10.8.0 (64-bit)
>
> Now I have an updated local source package of ChemoSpec which builds and checks fine. If I install it via the gui or command line, I can do library("ChemoSpec") just fine. But if I do ?ChemoSpec, R or Rgui just wanders off with the pinwheel of death and must be force quitted. That's not the best clue. If I do sessionInfo() before library("ChemoSpec") sessionInfo() works fine. If I do sessionInfo() after library("ChemoSpec"), R or Rgui crashes. I suspect it might be Rgui as because the crash occurs the moment I type the first '(' so it seems to occur when the gui is adding the ')' - notice that the crash info is printed before my sessionInfo command is echoed to the gui. The crash report is below. Suggestions most appreciated. Bryan
>
>> library("ChemoSpec")
> Package SparseM (0.97) loaded.
> To cite, see citation("SparseM")
>
> Loading required namespace: tcltk
>
> *** caught segfault ***
> address 0x0, cause 'unknown'
>
> Traceback:
> 1: sys.parent()
> 2: sys.function(sys.parent())
> 3: formals(sys.function(sys.parent()))
> 4: match.arg(encoding)
> 5: match(match.arg(encoding), c("", "bytes", "UTF-8"))
> 6: textConnection("rval", "w", local = TRUE)
> 7: capture.output(print(args(sessionInfo)))
> 8: paste(capture.output(print(args(sessionInfo))), collapse = "")
> 9: gsub("\\s+", " ", paste(capture.output(print(args(sessionInfo))), collapse = ""))
> 10: doTryCatch(return(expr), name, parentenv, handler)
> 11: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> 12: tryCatchList(expr, classes, parentenv, handlers)
> 13: 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))})
> 14: try(gsub("\\s+", " ", paste(capture.output(print(args(sessionInfo))), collapse = "")), silent = TRUE)
>
> Possible actions:
> 1: abort (with core dump, if enabled)
> 2: normal R exit
> 3: exit R without saving workspace
> 4: exit R saving workspace
>> sessionInfo()
> Selection:
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
>
More information about the R-SIG-Mac
mailing list