[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