Closed Miachol closed 2 years ago
font{
line-height: 1.6;
}
ul,ol{
padding-left: 20px;
list-style-position: inside;
}
你好
可能是这个工具不支持一些复杂的列名,我在日志里看到了相关报错,你能否修改下数据的列名再尝试下?Warning: Computation failed in `stat_ydensity()`:
replacement has 1 row, data has 0
Warning: Error in : Can't subset columns that don't exist.
✖ Column Uninfected,C.alb,IL-17A,C.alb +IL-17A
doesn't exist.
221:
caught segfault
祝好,诗翔Hiplot team
Shixiang WangPostdocSun Yat-sen University Cancer Center+86 ***@***.***, China 51006https://shixiangwang.github.io/
在2022年3月25日 ***@***.***> 写道:
due: 2022-04-01 Contact: JIANFENG LIN / @.*** Tool: https://hiplot.com.cn/advance/raincloud-shiny 我在用这个工具作图,发现每次到下载图片结果的时候,都会提示与服务器断开连接,导致下载图片失败。但是在整个使用的过程中,软件都在正常运转: 比如调节参数的时候都是有反应的。 只有一次成功了,就是刚连接上,然后上传数据,在没有调节任何参数的情况下下载了图片。
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>
下载 ZIP 会断开连接
的确如此。但我看仓库,只是一个软连接,应该是指向官方仓库了,代码应该是一样的。
可能是R版本或者包版本的问题,也有可能是服务器绘图设备之类的问题。
正常的绘图输出会产生很多不同格式的图形文件:
Hiplot日志:
su: ignore --preserve-environment, it's mutually exclusive to --login.
Listening on http://127.0.0.1:43213
Attaching package: ‘ggpubr’
The following object is masked from ‘package:cowplot’:
get_legend
Loading required package: lattice
Loading required package: survival
Loading required package: Formula
Attaching package: ‘Hmisc’
The following objects are masked from ‘package:base’:
format.pval, units
Attaching package: ‘dplyr’
The following objects are masked from ‘package:Hmisc’:
src, summarize
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
Note: Using an external vector in selections is ambiguous.
ℹ Use `all_of(filterConditions)` instead of `filterConditions` to silence this message.
ℹ See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
This message is displayed once per session.
Warning in grid.Call.graphics(C_polygon, x$x, x$y, index) :
semi-transparency is not supported on this device: reported only once per page
*** caught segfault ***
address 0x1, cause 'memory not mapped'
Traceback:
1: grDevices::dev.off()
2: eval(expr, pf)
3: eval(expr, pf)
4: withVisible(eval(expr, pf))
5: evalVis(expr)
6: utils::capture.output({ grDevices::dev.off() if (old_dev > 1) grDevices::dev.set(old_dev)})
7: ggsave(tiffFile, plot = plotFigure(), device = "tiff", compression = "lzw", width = input$width/72, height = input$height/72, units = "in", dpi = 300)
8: download$func(tmpdata)
9: ..stacktraceon..(download$func(tmpdata))
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 sm <- strsplit(conditionMessage(e), "\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 && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))})
14: try(..stacktraceon..(download$func(tmpdata)), silent = TRUE)
15: force(expr)
16: withVisible(force(expr))
17: withCallingHandlers(expr, error = doCaptureStack)
18: domain$wrapSync(expr)
19: promises::with_promise_domain(createStackTracePromiseDomain(), expr)
20: captureStackTraces({ result <- withVisible(force(expr)) if (promises::is.promising(result$value)) { p <- promise_chain(valueWithVisible(result), ..., catch = catch, finally = finally) runFinally <- FALSE p } else { result <- Reduce(function(v, func) { if (v$visible) { withVisible(func(v$value)) } else { withVisible(func(invisible(v$value))) } }, list(...), result) valueWithVisible(result) }})
21: doTryCatch(return(expr), name, parentenv, handler)
22: tryCatchOne(expr, names, parentenv, handlers[[1L]])
23: tryCatchList(expr, classes, parentenv, handlers)
24: tryCatch({ captureStackTraces({ result <- withVisible(force(expr)) if (promises::is.promising(result$value)) { p <- promise_chain(valueWithVisible(result), ..., catch = catch, finally = finally) runFinally <- FALSE p } else { result <- Reduce(function(v, func) { if (v$visible) { withVisible(func(v$value)) } else { withVisible(func(invisible(v$value))) } }, list(...), result) valueWithVisible(result) } })}, error = function(e) { if (!is.null(catch)) catch(e) else stop(e)}, finally = if (runFinally && !is.null(finally)) finally())
25: do()
26: hybrid_chain(try(..stacktraceon..(download$func(tmpdata)), silent = TRUE), function(result) { if (inherits(result, "try-error")) { unlink(tmpdata) stop(attr(result, "condition", exact = TRUE)) } if (!file.exists(tmpdata)) { return(httpResponse(404, content = "404 Not found")) } return(httpResponse(200, download$contentType %||% getContentType(filename), list(file = tmpdata, owned = TRUE), c(`Content-Disposition` = ifelse(dlmatches[3] == "", paste0("attachment; filename=\"", gsub("([\"\\\\])", "\\\\\\1", filename), "\""), "attachment"), `Cache-Control` = "no-cache"))) }, finally = function() { self$decrementBusyCount() })
27: withCallingHandlers(expr, error = doCaptureStack)
28: domain$wrapSync(expr)
29: promises::with_promise_domain(createStackTracePromiseDomain(), { self$incrementBusyCount() hybrid_chain(try(..stacktraceon..(download$func(tmpdata)), silent = TRUE), function(result) { if (inherits(result, "try-error")) { unlink(tmpdata) stop(attr(result, "condition", exact = TRUE)) } if (!file.exists(tmpdata)) { return(httpResponse(404, content = "404 Not found")) } return(httpResponse(200, download$contentType %||% getContentType(filename), list(file = tmpdata, owned = TRUE), c(`Content-Disposition` = ifelse(dlmatches[3] == "", paste0("attachment; filename=\"", gsub("([\"\\\\])", "\\\\\\1", filename), "\""), "attachment"), `Cache-Control` = "no-cache"))) }, finally = function() { self$decrementBusyCount() }) })
30: domain$wrapSync(expr)
31: promises::with_promise_domain(reactivePromiseDomain(), { promises::with_promise_domain(createStackTracePromiseDomain(), { self$incrementBusyCount() hybrid_chain(try(..stacktraceon..(download$func(tmpdata)), silent = TRUE), function(result) { if (inherits(result, "try-error")) { unlink(tmpdata) stop(attr(result, "condition", exact = TRUE)) } if (!file.exists(tmpdata)) { return(httpResponse(404, content = "404 Not found")) } return(httpResponse(200, download$contentType %||% getContentType(filename), list(file = tmpdata, owned = TRUE), c(`Content-Disposition` = ifelse(dlmatches[3] == "", paste0("attachment; filename=\"", gsub("([\"\\\\])", "\\\\\\1", filename), "\""), "attachment"), `Cache-Control` = "no-cache"))) }, finally = function() { self$decrementBusyCount() }) })})
32: contextFunc()
33: env$runWith(self, func)
34: force(expr)
35: domain$wrapSync(expr)
36: promises::with_promise_domain(createVarPromiseDomain(.globals, "domain", domain), expr)
37: withReactiveDomain(.domain, { env <- .getReactiveEnvironment() rLog$enter(.reactId, id, .reactType, .domain) on.exit(rLog$exit(.reactId, id, .reactType, .domain), add = TRUE) env$runWith(self, func)})
38: domain$wrapSync(expr)
39: promises::with_promise_domain(reactivePromiseDomain(), { withReactiveDomain(.domain, { env <- .getReactiveEnvironment() rLog$enter(.reactId, id, .reactType, .domain) on.exit(rLog$exit(.reactId, id, .reactType, .domain), add = TRUE) env$runWith(self, func) })})
40: Context$new(getDefaultReactiveDomain(), "[download]")$run(function() { promises::with_promise_domain(reactivePromiseDomain(), { promises::with_promise_domain(createStackTracePromiseDomain(), { self$incrementBusyCount() hybrid_chain(try(..stacktraceon..(download$func(tmpdata)), silent = TRUE), function(result) { if (inherits(result, "try-error")) { unlink(tmpdata) stop(attr(result, "condition", exact = TRUE)) } if (!file.exists(tmpdata)) { return(httpResponse(404, content = "404 Not found")) } return(httpResponse(200, download$contentType %||% getContentType(filename), list(file = tmpdata, owned = TRUE), c(`Content-Disposition` = ifelse(dlmatches[3] == "", paste0("attachment; filename=\"", gsub("([\"\\\\])", "\\\\\\1", filename), "\""), "attachment"), `Cache-Control` = "no-cache"))) }, finally = function() { self$decrementBusyCount() }) }) })})
41: shinysession$handleRequest(subreq)
42: force(expr)
43: domain$wrapSync(expr)
44: promises::with_promise_domain(createVarPromiseDomain(.globals, "domain", domain), expr)
45: withReactiveDomain(shinysession, { shinysession$handleRequest(subreq)})
46: handler(req)
47: handler(...)
48: handlers$invoke(req)
49: withCallingHandlers(expr, error = doCaptureStack)
50: domain$wrapSync(expr)
51: promises::with_promise_domain(createStackTracePromiseDomain(), expr)
52: captureStackTraces(expr)
53: withCallingHandlers({ result <- captureStackTraces(expr) if (promises::is.promise(result)) { result <- promises::catch(result, function(cond) { if (inherits(cond, "shiny.silent.error")) return() if (isTRUE(getOption("show.error.messages"))) { printError(cond, full = full, offset = offset) } }) } result}, error = function(cond) { if (inherits(cond, "shiny.silent.error")) return() if (isTRUE(getOption("show.error.messages"))) { printError(cond, full = full, offset = offset) }})
54: withLogErrors(handlers$invoke(req))
55: withCallingHandlers(withLogErrors(handlers$invoke(req)), error = function(cond) { sanitizeErrors <- getOption("shiny.sanitize.errors", FALSE) if (inherits(cond, "shiny.custom.error") || !sanitizeErrors) { stop(cond$message, call. = FALSE) } else { stop(paste("An error has occurred. Check your logs or", "contact the app author for clarification."), call. = FALSE) }})
56: force(expr)
57: withVisible(force(expr))
58: withCallingHandlers(expr, error = doCaptureStack)
59: domain$wrapSync(expr)
60: promises::with_promise_domain(createStackTracePromiseDomain(), expr)
61: captureStackTraces({ result <- withVisible(force(expr)) if (promises::is.promising(result$value)) { p <- promise_chain(valueWithVisible(result), ..., catch = catch, finally = finally) runFinally <- FALSE p } else { result <- Reduce(function(v, func) { if (v$visible) { withVisible(func(v$value)) } else { withVisible(func(invisible(v$value))) } }, list(...), result) valueWithVisible(result) }})
62: doTryCatch(return(expr), name, parentenv, handler)
63: tryCatchOne(expr, names, parentenv, handlers[[1L]])
64: tryCatchList(expr, classes, parentenv, handlers)
65: tryCatch({ captureStackTraces({ result <- withVisible(force(expr)) if (promises::is.promising(result$value)) { p <- promise_chain(valueWithVisible(result), ..., catch = catch, finally = finally) runFinally <- FALSE p } else { result <- Reduce(function(v, func) { if (v$visible) { withVisible(func(v$value)) } else { withVisible(func(invisible(v$value))) } }, list(...), result) valueWithVisible(result) } })}, error = function(e) { if (!is.null(catch)) catch(e) else stop(e)}, finally = if (runFinally && !is.null(finally)) finally())
66: do()
67: hybrid_chain(withCallingHandlers(withLogErrors(handlers$invoke(req)), error = function(cond) { sanitizeErrors <- getOption("shiny.sanitize.errors", FALSE) if (inherits(cond, "shiny.custom.error") || !sanitizeErrors) { stop(cond$message, call. = FALSE) } else { stop(paste("An error has occurred. Check your logs or", "contact the app author for clarification."), call. = FALSE) } }), catch = function(err) { httpResponse(status = 500L, content_type = "text/html; charset=UTF-8", content = as.character(htmltools::htmlTemplate(system.file("template", "error.html", package = "shiny"), message = conditionMessage(err))))})
68: force(expr)
69: withVisible(force(expr))
70: withCallingHandlers(expr, error = doCaptureStack)
71: domain$wrapSync(expr)
72: promises::with_promise_domain(createStackTracePromiseDomain(), expr)
73: captureStackTraces({ result <- withVisible(force(expr)) if (promises::is.promising(result$value)) { p <- promise_chain(valueWithVisible(result), ..., catch = catch, finally = finally) runFinally <- FALSE p } else { result <- Reduce(function(v, func) { if (v$visible) { withVisible(func(v$value)) } else { withVisible(func(invisible(v$value))) } }, list(...), result) valueWithVisible(result) }})
74: doTryCatch(return(expr), name, parentenv, handler)
75: tryCatchOne(expr, names, parentenv, handlers[[1L]])
76: tryCatchList(expr, classes, parentenv, handlers)
77: tryCatch({ captureStackTraces({ result <- withVisible(force(expr)) if (promises::is.promising(result$value)) { p <- promise_chain(valueWithVisible(result), ..., catch = catch, finally = finally) runFinally <- FALSE p } else { result <- Reduce(function(v, func) { if (v$visible) { withVisible(func(v$value)) } else { withVisible(func(invisible(v$value))) } }, list(...), result) valueWithVisible(result) } })}, error = function(e) { if (!is.null(catch)) catch(e) else stop(e)}, finally = if (runFinally && !is.null(finally)) finally())
78: do()
79: hybrid_chain(hybrid_chain(withCallingHandlers(withLogErrors(handlers$invoke(req)), error = function(cond) { sanitizeErrors <- getOption("shiny.sanitize.errors", FALSE) if (inherits(cond, "shiny.custom.error") || !sanitizeErrors) { stop(cond$message, call. = FALSE) } else { stop(paste("An error has occurred. Check your logs or", "contact the app author for clarification."), call. = FALSE) } }), catch = function(err) { httpResponse(status = 500L, content_type = "text/html; charset=UTF-8", content = as.character(htmltools::htmlTemplate(system.file("template", "error.html", package = "shiny"), message = conditionMessage(err))))}), function(resp) { maybeInjectAutoreload(resp)})
80: handler(req)
81: func(req)
82: compute()
83: doTryCatch(return(expr), name, parentenv, handler)
84: tryCatchOne(expr, names, parentenv, handlers[[1L]])
85: tryCatchList(expr, classes, parentenv, handlers)
86: tryCatch(compute(), error = function(e) compute_error <<- e)
87: rookCall(private$app$call, req, req$.bodyData, seek(req$.bodyData))
88: (function (req, cpp_callback) { resp <- if (is.null(private$app$call)) { list(status = 404L, headers = list(`Content-Type` = "text/plain"), body = "404 Not Found\n") } else { rookCall(private$app$call, req, req$.bodyData, seek(req$.bodyData)) } clean_up <- function() { if (!is.null(req$.bodyData)) { close(req$.bodyData) } req$.bodyData <- NULL } if (is.promise(resp)) { resp <- resp %...>% invokeCppCallback(., cpp_callback) finally(resp, clean_up) } else { on.exit(clean_up()) invokeCppCallback(resp, cpp_callback) } invisible()})(<environment>, <pointer: 0xfd10db0>)
89: evalq((function (req, cpp_callback) { resp <- if (is.null(private$app$call)) { list(status = 404L, headers = list(`Content-Type` = "text/plain"), body = "404 Not Found\n") } else { rookCall(private$app$call, req, req$.bodyData, seek(req$.bodyData)) } clean_up <- function() { if (!is.null(req$.bodyData)) { close(req$.bodyData) } req$.bodyData <- NULL } if (is.promise(resp)) { resp <- resp %...>% invokeCppCallback(., cpp_callback) finally(resp, clean_up) } else { on.exit(clean_up()) invokeCppCallback(resp, cpp_callback) } invisible()})(<environment>, <pointer: 0xfd10db0>), <environment>)
90: evalq((function (req, cpp_callback) { resp <- if (is.null(private$app$call)) { list(status = 404L, headers = list(`Content-Type` = "text/plain"), body = "404 Not Found\n") } else { rookCall(private$app$call, req, req$.bodyData, seek(req$.bodyData)) } clean_up <- function() { if (!is.null(req$.bodyData)) { close(req$.bodyData) } req$.bodyData <- NULL } if (is.promise(resp)) { resp <- resp %...>% invokeCppCallback(., cpp_callback) finally(resp, clean_up) } else { on.exit(clean_up()) invokeCppCallback(resp, cpp_callback) } invisible()})(<environment>, <pointer: 0xfd10db0>), <environment>)
91: doTryCatch(return(expr), name, parentenv, handler)
92: tryCatchOne(expr, names, parentenv, handlers[[1L]])
93: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
94: doTryCatch(return(expr), name, parentenv, handler)
95: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
96: tryCatchList(expr, classes, parentenv, handlers)
97: tryCatch(evalq((function (req, cpp_callback) { resp <- if (is.null(private$app$call)) { list(status = 404L, headers = list(`Content-Type` = "text/plain"), body = "404 Not Found\n") } else { rookCall(private$app$call, req, req$.bodyData, seek(req$.bodyData)) } clean_up <- function() { if (!is.null(req$.bodyData)) { close(req$.bodyData) } req$.bodyData <- NULL } if (is.promise(resp)) { resp <- resp %...>% invokeCppCallback(., cpp_callback) finally(resp, clean_up) } else { on.exit(clean_up()) invokeCppCallback(resp, cpp_callback) } invisible()})(<environment>, <pointer: 0xfd10db0>), <environment>), error = function (x) x, interrupt = function (x) x)
An irrecoverable exception occurred. R is aborting now ...
-bash: line 1: 455499 Segmentation fault R --no-save --slave -f \/opt\/shiny-server\/R\/SockJSAdapter\.R
修改 TIFF 导出命令后修复正常
due: 2022-04-01
Contact: JIANFENG LIN / jianfeng.lin@lundquist.org Tool: https://hiplot.com.cn/advance/raincloud-shiny 我在用这个工具作图,发现每次到下载图片结果的时候,都会提示与服务器断开连接,导致下载图片失败。但是在整个使用的过程中,软件都在正常运转: 比如调节参数的时候都是有反应的。
只有一次成功了,就是刚连接上,然后上传数据,在没有调节任何参数的情况下下载了图片。