tcltk causes help() to hang in R 4.2.0 on macOS
For reference, this problem is not macOS specific, it also exists on Linux (but not on Windows which use a different code path) and the core problem is how to prevent re-entrant execution of R event handlers when run from the R/tcltk event loop, itself running from an R event handler. R-patched now contains a defensive work-around from Simon. We have added a more efficient and cleaner fix to R-devel, but there is some risk of breakage: this form is "the documented way" but didn't work on some systems ~22 years ago. So it would be great if people using Tcl/Tk in R on Unix, and particularly those with rarely used window managers, could test their applications or the tcltk package demos and report any issues well before the next release. Thanks Tomas
On 5/30/22 01:27, John Fox wrote:
Dear Simon, Thank you for addressing this problem so promptly. Best, ?John On 2022-05-29 6:51 p.m., Simon Urbanek wrote:
Actually, I take back the reference to the commit - the deadlock is true, and removing the line is a work-around, but r78421 was not necessarily the regression. The issue seems to be caused by a combination of Tcl/Tk and KaTeX (the latter causes the browser to issue multiple parallel http-requests and the former causes the deadlock in its event loop) which has not been there in earlier R versions. Cheers, Simon
On 30/05/2022, at 10:09 AM, Simon Urbanek <simon.urbanek at r-project.org> wrote: John, thanks, this is a regression caused by r78421 (deadlock when TclTk's event loop is called in http processing). Removing L875 in src/modules/internet/Rhttpd.c restores the previous behavior, but the underlying problem is more complex and will require more investigation. Cheers, Simon
On 29/05/2022, at 5:36 AM, John Fox <jfox at mcmaster.ca> wrote:
Dear R-sig-mac list members,
I've discovered that loading the tcltk package apparently causes R
4.2.0 (including the current patched version) to hang on an M1 Mac.
Try, e.g.,
library("tcltk")
help("lm")
My session info:
------- snip -------
sessionInfo()
R version 4.2.0 Patched (2022-05-28 r82413) Platform: aarch64-apple-darwin20 (64-bit) Running under: macOS Monterey 12.3.1 Matrix products: default BLAS: /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRblas.0.dylib LAPACK: /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRlapack.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] tcltk???? stats???? graphics? grDevices utils datasets? methods [8] base loaded via a namespace (and not attached): [1] compiler_4.2.0 ------- snip ------- Some additional details: The problem occurs both in the R macOS console and, if options(help_type="html"), when R is run in a terminal window on macOS, but not when options(help_type="text"). The former is the default in the Mac R console, the latter when R is run in a terminal. The problem is apparently new in R 4.2.0 -- it doesn't, e.g., occur in R 4.1.3. My apologies for not turning it up earlier. I discovered the problem when accessing help in the Rcmdr GUI, which uses tcltk, caused R to hang. Has anyone else encountered this problem? Best, John -- John Fox, Professor Emeritus McMaster University Hamilton, Ontario, Canada web: https://socialsciences.mcmaster.ca/jfox/
_______________________________________________ R-SIG-Mac mailing list R-SIG-Mac at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac
_______________________________________________ R-SIG-Mac mailing list R-SIG-Mac at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac