[R-SIG-Mac] tcltk causes help() to hang in R 4.2.0 on macOS

Tomas Kalibera tom@@@k@||ber@ @end|ng |rom gm@||@com
Wed Jun 8 18:16:46 CEST 2022


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 using 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 using 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 using r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>
>>>
>>> _______________________________________________
>>> R-SIG-Mac mailing list
>>> R-SIG-Mac using r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>
>>



More information about the R-SIG-Mac mailing list