Closed joelgombin closed 7 years ago
Le segfault survient juste en chargeant le package avec library
, ou lors de l'exécution d'explor
?
Je ne suis vraiment pas spécialiste du débuggage des segfaults, mais on dirait que l'erreur est liée à l'extension MonetDBLite
, est-ce que tu utilises ce package dans ton code ?
en lançant la fonction explor
.
J'ai essayé de répliquer sans utiliser le packae MonetDBLite
, ça segfaulte quand même :
> explor(acp)
Le chargement a nécessité le package : shiny
Listening on http://127.0.0.1:4946
*** caught segfault ***
address 0xb7, cause 'memory not mapped'
Traceback:
1: .External("cairo_create_new_device", as.character(ctype), file, width, height, pointsize, bg, canvas, umpl, dpi, ..., PACKAGE = "Cairo")
2: Cairo(width, height, type = "png", file = filename, pointsize = pointsize, bg = bg, res = res, ...)
3: pngfun(filename = filename, width = width, height = height, res = res, ...)
4: (function (func, filename = tempfile(fileext = ".png"), width = 400, height = 400, res = 72, ...) { if (capabilities("aqua")) { pngfun <- grDevices::png } else if ((getOption("shiny.usecairo") %OR% TRUE) && nchar(system.file(package = "Cairo"))) { pngfun <- Cairo::CairoPNG } else { pngfun <- grDevices::png } pngfun(filename = filename, width = width, height = height, res = res, ...) op <- graphics::par(mar = rep(0, 4)) tryCatch(graphics::plot.new(), finally = graphics::par(op)) dv <- grDevices::dev.cur() on.exit(grDevices::dev.off(dv), add = TRUE) func() filename})(function () { success <- FALSE tryCatch({ grDevices::dev.control(displaylist = "enable") result <- withVisible(func()) success <- TRUE }, finally = { if (!success) { getDims() } }) if (result$visible) { utils::capture.output({ plotResult <<- ..stacktraceon..(print(result$value)) }) } recordedPlot <<- grDevices::recordPlot() if (inherits(plotResult, "ggplot_build_gtable")) { coordmap <<- getGgplotCoordmap(plotResult, pixelratio, res) } else { coordmap <<- getPrevPlotCoordmap(dims$width, dims$height) }}, width = 770L, height = 500L, res = 72)
5: do.call(plotPNG, c(plotFunc, width = dims$width * pixelratio, height = dims$height * pixelratio, res = res * pixelratio, args))
6: ..stacktraceoff..(do.call(plotPNG, c(plotFunc, width = dims$width * pixelratio, height = dims$height * pixelratio, res = res * pixelratio, args)))
7: `<reactive:plotObj>`(...)
8: ..stacktraceon..(`<reactive:plotObj>`(...))
9: .func()
10: withVisible(.func())
11: withCallingHandlers({ .error <<- FALSE withVisible(.func())}, error = function(cond) { .value <<- cond .error <<- TRUE .visible <<- FALSE})
12: contextFunc()
13: env$runWith(self, func)
14: withReactiveDomain(.domain, { env <- .getReactiveEnvironment() .graphEnterContext(id) on.exit(.graphExitContext(id), add = TRUE) env$runWith(self, func)})
15: ctx$run(function() { result <- withCallingHandlers({ .error <<- FALSE withVisible(.func()) }, error = function(cond) { .value <<- cond .error <<- TRUE .visible <<- FALSE }) .value <<- result$value .visible <<- result$visible})
16: self$.updateValue()
17: ..stacktraceoff..(self$.updateValue())
18: plotObj()
19: origRenderFunc(...)
20: `output$eigen-eigplot`(...)
21: ..stacktraceon..(`output$eigen-eigplot`(...))
22: orig(name = name, shinysession = self)
23: func()
24: withCallingHandlers(expr, error = function(e) { if (is.null(attr(e, "stack.trace", exact = TRUE))) { calls <- sys.calls() attr(e, "stack.trace") <- calls stop(e) }})
25: captureStackTraces(expr)
26: withCallingHandlers(captureStackTraces(expr), error = function(e) { if (inherits(e, "shiny.silent.error")) return() handle <- getOption("shiny.error") if (is.function(handle)) handle()})
27: shinyCallingHandlers(func())
28: doTryCatch(return(expr), name, parentenv, handler)
29: tryCatchOne(expr, names, parentenv, handlers[[1L]])
30: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
31: doTryCatch(return(expr), name, parentenv, handler)
32: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
33: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
34: doTryCatch(return(expr), name, parentenv, handler)
35: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
36: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
37: doTryCatch(return(expr), name, parentenv, handler)
38: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
39: tryCatchList(expr, classes, parentenv, handlers)
40: tryCatch(shinyCallingHandlers(func()), shiny.custom.error = function(cond) { if (isTRUE(getOption("show.error.messages"))) printError(cond) structure(list(), class = "try-error", condition = cond)}, shiny.output.cancel = function(cond) { structure(list(), class = "cancel-output")}, shiny.silent.error = function(cond) { structure(list(), class = "try-error", condition = cond)}, error = function(cond) { if (isTRUE(getOption("show.error.messages"))) printError(cond) if (getOption("shiny.sanitize.errors", FALSE)) { cond <- simpleError(paste("An error has occurred. Check your", "logs or contact the app author for", "clarification.")) } invisible(structure(list(), class = "try-error", condition = cond))}, finally = { private$sendMessage(recalculating = list(name = name, status = "recalculated"))})
41: observerFunc()
42: doTryCatch(return(expr), name, parentenv, handler)
43: tryCatchOne(expr, names, parentenv, handlers[[1L]])
44: tryCatchList(expr, classes, parentenv, handlers)
45: tryCatch(if (..stacktraceon) ..stacktraceon..(observerFunc()) else observerFunc(), shiny.silent.error = function(e) NULL)
46: contextFunc()
47: env$runWith(self, func)
48: withReactiveDomain(.domain, { env <- .getReactiveEnvironment() .graphEnterContext(id) on.exit(.graphExitContext(id), add = TRUE) env$runWith(self, func)})
49: ctx$run(.func)
50: run()
51: withCallingHandlers(expr, error = function(e) { if (is.null(attr(e, "stack.trace", exact = TRUE))) { calls <- sys.calls() attr(e, "stack.trace") <- calls stop(e) }})
52: captureStackTraces(expr)
53: withCallingHandlers(captureStackTraces(expr), error = function(e) { if (inherits(e, "shiny.silent.error")) return() handle <- getOption("shiny.error") if (is.function(handle)) handle()})
54: shinyCallingHandlers(run())
55: doTryCatch(return(expr), name, parentenv, handler)
56: tryCatchOne(expr, names, parentenv, handlers[[1L]])
57: tryCatchList(expr, classes, parentenv, handlers)
58: tryCatch({ if (!.destroyed) shinyCallingHandlers(run())}, error = function(e) { printError(e) if (!is.null(.domain)) { .domain$unhandledError(e) }})
59: flushCallback()
60: FUN(X[[i]], ...)
61: lapply(.flushCallbacks, function(flushCallback) { flushCallback()})
62: ctx$executeFlushCallbacks()
63: .getReactiveEnvironment()$flush()
64: flushReact()
65: force(expr)
66: withRestoreContext(shinysession$restoreContext, { msg$data <- applyInputHandlers(msg$data) switch(msg$method, init = { serverFunc <- withReactiveDomain(NULL, serverFuncSource()) if (!identicalFunctionBodies(serverFunc, appvars$server)) { appvars$server <- serverFunc if (!is.null(appvars$server)) { attr(appvars$server, "shinyServerFunction") <- TRUE registerDebugHook("server", appvars, "Server Function") } } if (.globals$showcaseOverride && exists(".clientdata_url_search", where = msg$data)) { mode <- showcaseModeOfQuerystring(msg$data$.clientdata_url_search) if (!is.null(mode)) shinysession$setShowcase(mode) } shinysession$manageInputs(msg$data) if (!is.null(msg$data$.clientdata_singletons)) { shinysession$singletons <- strsplit(msg$data$.clientdata_singletons, ",")[[1]] } local({ args <- argsForServerFunc(serverFunc, shinysession) withReactiveDomain(shinysession, { do.call(wrapFunctionLabel(appvars$server, "server", ..stacktraceon = TRUE), args) }) }) }, update = { shinysession$manageInputs(msg$data) }, shinysession$dispatch(msg)) shinysession$manageHiddenOutputs() if (exists(".shiny__stdout", globalenv()) && exists("HTTP_GUID", ws$request)) { shiny_stdout <- get(".shiny__stdout", globalenv()) writeLines(paste("_n_flushReact ", get("HTTP_GUID", ws$request), " @ ", sprintf("%.3f", as.numeric(Sys.time())), sep = ""), con = shiny_stdout) flush(shiny_stdout) flushReact() writeLines(paste("_x_flushReact ", get("HTTP_GUID", ws$request), " @ ", sprintf("%.3f", as.numeric(Sys.time())), sep = ""), con = shiny_stdout) flush(shiny_stdout) } else { flushReact() } flushAllSessions()})
67: withReactiveDomain(shinysession, { if (is.character(msg)) msg <- charToRaw(msg) traceOption <- getOption("shiny.trace", FALSE) if (isTRUE(traceOption) || traceOption == "recv") { if (binary) message("RECV ", "$$binary data$$") else message("RECV ", rawToChar(msg)) } if (identical(charToRaw("\003\xe9"), msg)) return() msg <- decodeMessage(msg) if (is.null(shinysession$restoreContext)) { bookmarkStore <- getShinyOption("bookmarkStore", default = "disable") if (bookmarkStore == "disable") { shinysession$restoreContext <- RestoreContext$new() } else { shinysession$restoreContext <- RestoreContext$new(msg$data$.clientdata_url_search) } } withRestoreContext(shinysession$restoreContext, { msg$data <- applyInputHandlers(msg$data) switch(msg$method, init = { serverFunc <- withReactiveDomain(NULL, serverFuncSource()) if (!identicalFunctionBodies(serverFunc, appvars$server)) { appvars$server <- serverFunc if (!is.null(appvars$server)) { attr(appvars$server, "shinyServerFunction") <- TRUE registerDebugHook("server", appvars, "Server Function") } } if (.globals$showcaseOverride && exists(".clientdata_url_search", where = msg$data)) { mode <- showcaseModeOfQuerystring(msg$data$.clientdata_url_search) if (!is.null(mode)) shinysession$setShowcase(mode) } shinysession$manageInputs(msg$data) if (!is.null(msg$data$.clientdata_singletons)) { shinysession$singletons <- strsplit(msg$data$.clientdata_singletons, ",")[[1]] } local({ args <- argsForServerFunc(serverFunc, shinysession) withReactiveDomain(shinysession, { do.call(wrapFunctionLabel(appvars$server, "server", ..stacktraceon = TRUE), args) }) }) }, update = { shinysession$manageInputs(msg$data) }, shinysession$dispatch(msg)) shinysession$manageHiddenOutputs() if (exists(".shiny__stdout", globalenv()) && exists("HTTP_GUID", ws$request)) { shiny_stdout <- get(".shiny__stdout", globalenv()) writeLines(paste("_n_flushReact ", get("HTTP_GUID", ws$request), " @ ", sprintf("%.3f", as.numeric(Sys.time())), sep = ""), con = shiny_stdout) flush(shiny_stdout) flushReact() writeLines(paste("_x_flushReact ", get("HTTP_GUID", ws$request), " @ ", sprintf("%.3f", as.numeric(Sys.time())), sep = ""), con = shiny_stdout) flush(shiny_stdout) } else { flushReact() } flushAllSessions() })})
68: messageHandler(binary, msg)
69: withCallingHandlers(expr, error = function(e) { if (is.null(attr(e, "stack.trace", exact = TRUE))) { calls <- sys.calls() attr(e, "stack.trace") <- calls stop(e) }})
70: captureStackTraces(expr)
71: withCallingHandlers(captureStackTraces(expr), error = function(cond) { if (inherits(cond, "shiny.silent.error")) return() if (isTRUE(getOption("show.error.messages"))) { printError(cond, full = full, offset = offset) }})
72: withLogErrors(messageHandler(binary, msg))
73: handler(binary, message)
74: doTryCatch(return(expr), name, parentenv, handler)
75: tryCatchOne(expr, names, parentenv, handlers[[1L]])
76: tryCatchList(expr, classes, parentenv, handlers)
77: 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 = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))})
78: try(handler(binary, message))
79: (function (handle, binary, message) { for (handler in .wsconns[[as.character(handle)]]$.messageCallbacks) { result <- try(handler(binary, message)) if (inherits(result, "try-error")) { .wsconns[[as.character(handle)]]$close() return() } }})("40475856", FALSE, "{\"method\":\"init\",\"data\":{\"explor-var-lasso-toggle:shiny.action\":0,\"explor_var_plot_code:shiny.action\":0,\"explor-ind-lasso-toggle:shiny.action\":0,\"explor_ind_plot_code:shiny.action\":0,\"var_x\":\"1\",\"var_y\":\"2\",\"var_data-vardim\":\"1\",\"ind_x\":\"1\",\"ind_y\":\"2\",\"ind_opacity_var\":\"Fixed\",\"ind_data-inddim\":\"1\",\"var_lab_size\":10,\"ind_point_size\":64,\"ind_opacity\":0.5,\"ind_labels_size\":9,\"var_transitions\":true,\"ind_labels_show\":false,\"ind_transitions\":true,\"eigen-eig_nb:shiny.number\":16,\"var_lab_min_contrib:shiny.number\":0,\".clientdata_output_eigen-eigplot_width\":770,\".clientdata_output_eigen-eigplot_height\":500,\".clientdata_output_eigen-eigplot_hidden\":false,\".clientdata_output_eigen-eigtab_hidden\":false,\".clientdata_output_varplot_hidden\":true,\".clientdata_output_var_data-vartable_hidden\":true,\".clientdata_output_indplot_hidden\":true,\".clientdata_output_ind_data-indtable_hidden\":true,\".clientdata_pixelratio\":1,\".clientdata_url_protocol\":\"http:\",\".clientdata_url_hostname\":\"127.0.0.1\",\".clientdata_url_port\":\"4946\",\".clientdata_url_pathname\":\"/\",\".clientdata_url_search\":\"\",\".clientdata_url_hash_initial\":\"\",\".clientdata_url_hash\":\"\",\".clientdata_singletons\":\"\",\".clientdata_allowDataUriScheme\":true}}")
80: evalq((function (handle, binary, message) { for (handler in .wsconns[[as.character(handle)]]$.messageCallbacks) { result <- try(handler(binary, message)) if (inherits(result, "try-error")) { .wsconns[[as.character(handle)]]$close() return() } }})("40475856", FALSE, "{\"method\":\"init\",\"data\":{\"explor-var-lasso-toggle:shiny.action\":0,\"explor_var_plot_code:shiny.action\":0,\"explor-ind-lasso-toggle:shiny.action\":0,\"explor_ind_plot_code:shiny.action\":0,\"var_x\":\"1\",\"var_y\":\"2\",\"var_data-vardim\":\"1\",\"ind_x\":\"1\",\"ind_y\":\"2\",\"ind_opacity_var\":\"Fixed\",\"ind_data-inddim\":\"1\",\"var_lab_size\":10,\"ind_point_size\":64,\"ind_opacity\":0.5,\"ind_labels_size\":9,\"var_transitions\":true,\"ind_labels_show\":false,\"ind_transitions\":true,\"eigen-eig_nb:shiny.number\":16,\"var_lab_min_contrib:shiny.number\":0,\".clientdata_output_eigen-eigplot_width\":770,\".clientdata_output_eigen-eigplot_height\":500,\".clientdata_output_eigen-eigplot_hidden\":false,\".clientdata_output_eigen-eigtab_hidden\":false,\".clientdata_output_varplot_hidden\":true,\".clientdata_output_var_data-vartable_hidden\":true,\".clientdata_output_indplot_hidden\":true,\".clientdata_output_ind_data-indtable_hidden\":true,\".clientdata_pixelratio\":1,\".clientdata_url_protocol\":\"http:\",\".clientdata_url_hostname\":\"127.0.0.1\",\".clientdata_url_port\":\"4946\",\".clientdata_url_pathname\":\"/\",\".clientdata_url_search\":\"\",\".clientdata_url_hash_initial\":\"\",\".clientdata_url_hash\":\"\",\".clientdata_singletons\":\"\",\".clientdata_allowDataUriScheme\":true}}"), <environment>)
81: evalq((function (handle, binary, message) { for (handler in .wsconns[[as.character(handle)]]$.messageCallbacks) { result <- try(handler(binary, message)) if (inherits(result, "try-error")) { .wsconns[[as.character(handle)]]$close() return() } }})("40475856", FALSE, "{\"method\":\"init\",\"data\":{\"explor-var-lasso-toggle:shiny.action\":0,\"explor_var_plot_code:shiny.action\":0,\"explor-ind-lasso-toggle:shiny.action\":0,\"explor_ind_plot_code:shiny.action\":0,\"var_x\":\"1\",\"var_y\":\"2\",\"var_data-vardim\":\"1\",\"ind_x\":\"1\",\"ind_y\":\"2\",\"ind_opacity_var\":\"Fixed\",\"ind_data-inddim\":\"1\",\"var_lab_size\":10,\"ind_point_size\":64,\"ind_opacity\":0.5,\"ind_labels_size\":9,\"var_transitions\":true,\"ind_labels_show\":false,\"ind_transitions\":true,\"eigen-eig_nb:shiny.number\":16,\"var_lab_min_contrib:shiny.number\":0,\".clientdata_output_eigen-eigplot_width\":770,\".clientdata_output_eigen-eigplot_height\":500,\".clientdata_output_eigen-eigplot_hidden\":false,\".clientdata_output_eigen-eigtab_hidden\":false,\".clientdata_output_varplot_hidden\":true,\".clientdata_output_var_data-vartable_hidden\":true,\".clientdata_output_indplot_hidden\":true,\".clientdata_output_ind_data-indtable_hidden\":true,\".clientdata_pixelratio\":1,\".clientdata_url_protocol\":\"http:\",\".clientdata_url_hostname\":\"127.0.0.1\",\".clientdata_url_port\":\"4946\",\".clientdata_url_pathname\":\"/\",\".clientdata_url_search\":\"\",\".clientdata_url_hash_initial\":\"\",\".clientdata_url_hash\":\"\",\".clientdata_singletons\":\"\",\".clientdata_allowDataUriScheme\":true}}"), <environment>)
82: doTryCatch(return(expr), name, parentenv, handler)
83: tryCatchOne(expr, names, parentenv, handlers[[1L]])
84: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
85: doTryCatch(return(expr), name, parentenv, handler)
86: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
87: tryCatchList(expr, classes, parentenv, handlers)
88: tryCatch(evalq((function (handle, binary, message) { for (handler in .wsconns[[as.character(handle)]]$.messageCallbacks) { result <- try(handler(binary, message)) if (inherits(result, "try-error")) { .wsconns[[as.character(handle)]]$close() return() } }})("40475856", FALSE, "{\"method\":\"init\",\"data\":{\"explor-var-lasso-toggle:shiny.action\":0,\"explor_var_plot_code:shiny.action\":0,\"explor-ind-lasso-toggle:shiny.action\":0,\"explor_ind_plot_code:shiny.action\":0,\"var_x\":\"1\",\"var_y\":\"2\",\"var_data-vardim\":\"1\",\"ind_x\":\"1\",\"ind_y\":\"2\",\"ind_opacity_var\":\"Fixed\",\"ind_data-inddim\":\"1\",\"var_lab_size\":10,\"ind_point_size\":64,\"ind_opacity\":0.5,\"ind_labels_size\":9,\"var_transitions\":true,\"ind_labels_show\":false,\"ind_transitions\":true,\"eigen-eig_nb:shiny.number\":16,\"var_lab_min_contrib:shiny.number\":0,\".clientdata_output_eigen-eigplot_width\":770,\".clientdata_output_eigen-eigplot_height\":500,\".clientdata_output_eigen-eigplot_hidden\":false,\".clientdata_output_eigen-eigtab_hidden\":false,\".clientdata_output_varplot_hidden\":true,\".clientdata_output_var_data-vartable_hidden\":true,\".clientdata_output_indplot_hidden\":true,\".clientdata_output_ind_data-indtable_hidden\":true,\".clientdata_pixelratio\":1,\".clientdata_url_protocol\":\"http:\",\".clientdata_url_hostname\":\"127.0.0.1\",\".clientdata_url_port\":\"4946\",\".clientdata_url_pathname\":\"/\",\".clientdata_url_search\":\"\",\".clientdata_url_hash_initial\":\"\",\".clientdata_url_hash\":\"\",\".clientdata_singletons\":\"\",\".clientdata_allowDataUriScheme\":true}}"), <environment>), error = function (x) x, interrupt = function (x) x)
89: .Call("httpuv_run", PACKAGE = "httpuv", timeoutMillis)
90: run(timeoutMs)
91: service(timeout)
92: serviceApp()
93: withCallingHandlers(expr, error = function(e) { if (is.null(attr(e, "stack.trace", exact = TRUE))) { calls <- sys.calls() attr(e, "stack.trace") <- calls stop(e) }})
94: captureStackTraces({ scheduleFlush() while (!.globals$stopped) { serviceApp() Sys.sleep(0.001) }})
95: ..stacktraceoff..(captureStackTraces({ scheduleFlush() while (!.globals$stopped) { serviceApp() Sys.sleep(0.001) }}))
96: (function (appDir = getwd(), port = getOption("shiny.port"), launch.browser = getOption("shiny.launch.browser", interactive()), host = getOption("shiny.host", "127.0.0.1"), workerId = "", quiet = FALSE, display.mode = c("auto", "normal", "showcase"), test.mode = getOption("shiny.testmode", FALSE)) { on.exit({ handlerManager$clear() }, add = TRUE) if (.globals$running) { stop("Can't call `runApp()` from within `runApp()`. If your ", "application code contains `runApp()`, please remove it.") } .globals$running <- TRUE on.exit({ .globals$running <- FALSE }, add = TRUE) oldOptionSet <- .globals$options on.exit({ .globals$options <- oldOptionSet }, add = TRUE) ops <- options(warn = 1, pool.scheduler = scheduleTask) on.exit(options(ops), add = TRUE) appParts <- as.shiny.appobj(appDir) appOps <- appParts$options findVal <- function(arg, default) { if (arg %in% names(appOps)) appOps[[arg]] else default } if (missing(port)) port <- findVal("port", port) if (missing(launch.browser)) launch.browser <- findVal("launch.browser", launch.browser) if (missing(host)) host <- findVal("host", host) if (missing(quiet)) quiet <- findVal("quiet", quiet) if (missing(display.mode)) display.mode <- findVal("display.mode", display.mode) if (missing(test.mode)) test.mode <- findVal("test.mode", test.mode) if (is.null(host) || is.na(host)) host <- "0.0.0.0" workerId(workerId) if (inShinyServer()) { ver <- Sys.getenv("SHINY_SERVER_VERSION") if (utils::compareVersion(ver, .shinyServerMinVersion) < 0) { warning("Shiny Server v", .shinyServerMinVersion, " or later is required; please upgrade!") } } setShowcaseDefault(0) .globals$testMode <- test.mode if (test.mode) { message("Running application in test mode.") } if (is.character(appDir)) { desc <- file.path.ci(if (tolower(tools::file_ext(appDir)) == "r") dirname(appDir) else appDir, "DESCRIPTION") if (file.exists(desc)) { con <- file(desc, encoding = checkEncoding(desc)) on.exit(close(con), add = TRUE) settings <- read.dcf(con) if ("DisplayMode" %in% colnames(settings)) { mode <- settings[1, "DisplayMode"] if (mode == "Showcase") { setShowcaseDefault(1) if ("IncludeWWW" %in% colnames(settings)) { .globals$IncludeWWW <- as.logical(settings[1, "IncludeWWW"]) if (is.na(.globals$IncludeWWW)) { stop("In your Description file, `IncludeWWW` ", "must be set to `True` (default) or `False`") } } else { .globals$IncludeWWW <- TRUE } } } } } if (is.null(.globals$IncludeWWW) || is.na(.globals$IncludeWWW)) { .globals$IncludeWWW <- TRUE } display.mode <- match.arg(display.mode) if (display.mode == "normal") { setShowcaseDefault(0) } else if (display.mode == "showcase") { setShowcaseDefault(1) } require(shiny) if (is.null(port)) { for (i in 1:20) { if (!is.null(.globals$lastPort)) { port <- .globals$lastPort .globals$lastPort <- NULL } else { while (TRUE) { port <- p_randomInt(3000, 8000) if (!port %in% c(3659, 4045, 6000, 6665:6669)) { break } } } tmp <- try(startServer(host, port, list()), silent = TRUE) if (!inherits(tmp, "try-error")) { stopServer(tmp) .globals$lastPort <- port break } } } unconsumeAppOptions(appParts$appOptions) if (!is.null(appParts$onEnd)) on.exit(appParts$onEnd(), add = TRUE) if (!is.null(appParts$onStart)) appParts$onStart() server <- startApp(appParts, port, host, quiet) on.exit({ stopServer(server) }, add = TRUE) if (!is.character(port)) { browseHost <- if (identical(host, "0.0.0.0")) "127.0.0.1" else host appUrl <- paste("http://", browseHost, ":", port, sep = "") if (is.function(launch.browser)) launch.browser(appUrl) else if (launch.browser) utils::browseURL(appUrl) } else { appUrl <- NULL } callAppHook("onAppStart", appUrl) on.exit({ callAppHook("onAppStop", appUrl) }, add = TRUE) .globals$reterror <- NULL .globals$retval <- NULL .globals$stopped <- FALSE ..stacktraceoff..(captureStackTraces({ scheduleFlush() while (!.globals$stopped) { serviceApp() Sys.sleep(0.001) } })) if (isTRUE(.globals$reterror)) { stop(.globals$retval) } else if (.globals$retval$visible) .globals$retval$value else invisible(.globals$retval$value)})(list(httpHandler = function (req) { if (!identical(req$REQUEST_METHOD, "GET")) return(NULL) if (!isTRUE(grepl(uiPattern, req$PATH_INFO))) return(NULL) textConn <- file(open = "w+") on.exit(close(textConn)) showcaseMode <- .globals$showcaseDefault if (.globals$showcaseOverride) { mode <- showcaseModeOfReq(req) if (!is.null(mode)) showcaseMode <- mode } testMode <- .globals$testMode %OR% FALSE bookmarkStore <- getShinyOption("bookmarkStore", default = "disable") if (bookmarkStore == "disable") { restoreContext <- RestoreContext$new() } else { restoreContext <- RestoreContext$new(req$QUERY_STRING) } withRestoreContext(restoreContext, { uiValue <- NULL if (is.function(ui)) { if (length(formals(ui)) > 0) { uiValue <- ..stacktraceon..(ui(req)) } else { uiValue <- ..stacktraceon..(ui()) } } else { if (getCurrentRestoreContext()$active) { warning("Trying to restore saved app state, but UI code must be a function for this to work! See ?enableBookmarking") } uiValue <- ui } }) if (is.null(uiValue)) return(NULL) renderPage(uiValue, textConn, showcaseMode, testMode) html <- paste(readLines(textConn, encoding = "UTF-8"), collapse = "\n") return(httpResponse(200, content = enc2utf8(html)))}, serverFuncSource = function () { server}, onStart = NULL, options = list(), appOptions = list(appDir = "/media/Data/Dropbox/Mediapart/presidentielle", bookmarkStore = NULL)))
97: do.call(runApp, args)
98: print.shiny.appobj(x)
99: function (x, ...) UseMethod("print")(x)
Insctinctivement je parierais sur la version dev de dplyr 0.6, mais je me trompe sans doute !
Bon, je n'arrive pas à reproduire, même avec tous les packages à jour et la dernière version de développement de dplyr... On dirait que cette fois le plantage survient lors de l'affichage de l'histogramme des valeurs propres, qui n'est pourtant qu'un simple barplot ggplot2.
Il y a une discussion sur ce sujet là :
https://groups.google.com/forum/#!topic/shiny-discuss/3FIgWdeZDZU
Une suggestion serait de réinstaller le package Cairo
pour être sûr qu'il a été compilé pour R 3.4...
Après plusieurs tests, je pense qu'il ne s'agit pas d'une issue shiny, ni d'une issue explor. Je continue à traquer le coupable :)
Désolé, et merci pour ce bel outil !
L'appel à
explor
me provoque le segfault suivant :Mon
sessionInfo()
: