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

John Fox j|ox @end|ng |rom mcm@@ter@c@
Thu Jun 9 16:32:02 CEST 2022


Dear Tomas,

On 2022-06-09 4:14 a.m., Tomas Kalibera wrote:
> 
> On 6/8/22 18:39, John Fox wrote:
>>
>>
>> On 2022-06-08 12:36 p.m., John Fox wrote:
>>> Dear Thomas,
>>>
>>> Thanks for this additional information.
>>>
>>> I added some of my own defensive code to the development version of 
>>> the Rcmdr package, to set the "help_type" option to "text" for macOS. 
>>> I'll 
>>
>> I should have added that help_type is set to "text" for R version 
>> 4.2.0 only!
> 
> I think it is a coincidence that this was seen in R 4.2.0. The http 
> server's handler has a safeguard against re-entrant execution since 
> 59338 (year 2012). As that safeguard was needed at that time for clients 
> connecting in rapid sequence, the problem with the live-lock with tcltk 
> event loop could have been triggered already then, but probably nobody 
> ran into this with tcltk package loaded. PR#17773 shows that attempts 
> for re-entrant/concurrent handling of http requests were seen in R 4.0.0 
> with the HTML help.

My experience of this issue is just with HTML help from the Rcmdr under 
macOS, but I've confirmed that the problem occurs in R 4.2.0 and not in 
R 4.1.3, possibly because the Rcmdr doesn't load tcltk (i.e., imports 
tcltk)?

Best,
  John

> 
> Best
> Tomas
> 
>>
>>> modify that to all non-Windows platforms, and also include this in 
>>> the CRAN version of the package.
>>>
>>> I currently test on macOS and Windows systems but when I have a 
>>> chance will get a Linux system working as well.
>>>
>>> Best,
>>>   John
>>>
>>> On 2022-06-08 12:16 p.m., Tomas Kalibera wrote:
>>>> 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
>>>>>>>
>>>>>>
-- 
John Fox, Professor Emeritus
McMaster University
Hamilton, Ontario, Canada
web: https://socialsciences.mcmaster.ca/jfox/



More information about the R-SIG-Mac mailing list