[R-SIG-Mac] [External] Rmpfr crashes on Mac

Göran Broström gor@n@bro@trom @end|ng |rom umu@@e
Mon Nov 29 12:37:20 CET 2021


I have the oldest MacBook Pro: mid 2010. Is it too early to upgrade to 
an M1Max one, for R purposes? Anyway, I get (this is R, but RStudio 
aborts too):

 > x1 <- mpfr(-50, 200)

  *** caught illegal operation ***
address 0x10fd8c23b, cause 'illegal opcode'

Traceback:
  1: mpfr.default(-50, 200)
  2: mpfr(-50, 200)

General info:


 > R.version
                _
platform       x86_64-apple-darwin17.0
arch           x86_64
os             darwin17.0
system         x86_64, darwin17.0
status
major          4
minor          1.2
year           2021
month          11
day            01
svn rev        81115
language       R
version.string R version 4.1.2 (2021-11-01)
nickname       Bird Hippie
 >

 > sessionInfo()
R version 4.1.2 (2021-11-01)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS: 
/Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
LAPACK: 
/Library/Frameworks/R.framework/Versions/4.1/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] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.1.2

 > system("system_profiler SPHardwareDataType SPSoftwareDataType")
Hardware:

     Hardware Overview:

       Model Name: MacBook Pro
       Model Identifier: MacBookPro6,2
       Processor Name: Intel Core i7
       Processor Speed: 2,66 GHz
       Number of Processors: 1
       Total Number of Cores: 2
       L2 Cache (per Core): 256 KB
       L3 Cache: 4 MB
       Memory: 8 GB
       Boot ROM Version: 99.0.0.0.0
       SMC Version (system): 1.58f17
       Serial Number (system): W8042281AGZ
       Hardware UUID: A1D55A7E-9CD1-59BD-AB78-E5B2518D4940
       Sudden Motion Sensor:
           State: Enabled

Software:

     System Software Overview:

       System Version: macOS 10.13.6 (17G14042)
       Kernel Version: Darwin 17.7.0
       Boot Volume: Samsung SSD
       Boot Mode: Normal
       Computer Name: MBP (2)
       User Name: Göran Broström (gobr0002)
       Secure Virtual Memory: Enabled
       System Integrity Protection: Enabled
       Time since boot: 25 minutes




Den 2021-11-29 kl. 06:43, skrev Kevin Ushey:
> Okay, I've reproduced the crash on my 2013 Intel MacBook Pro. In this case,
> the issue reproduces more readily because RStudio is calling str() behind
> the scenes (which is the cause of the crash in this case). So, a plain R
> reproducible example:
> 
> library(Rmpfr)
> x <- mpfr(-50.1, 200)
> str(x)
> 
> and I see:
> 
>> str(x)
> Class 'mpfr' [package "Rmpfr"] of length 1 and precision 200
> 
>   *** caught illegal operation ***
> address 0x112833ed5, cause 'illegal opcode'
> 
> Traceback:
>   1: .mpfr2str(x, digits, maybe.full = maybe.full, base = base)
>   2: formatMpfr(object, digits = digits.d, drop0trailing = drop0trailing,
>    ...)
>   3: str.mpfr(x)
>   4: str(x)
> 
>  From lldb:
> 
> * thread #1, queue = 'com.apple.main-thread', stop reason =
> EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
>      frame #0: 0x0000000107ec7ed5 Rmpfr.so`mpfr_get_str_aux + 165
> Rmpfr.so`mpfr_get_str_aux:
> ->  0x107ec7ed5 <+165>: adcxq  %rsi, %rcx
>      0x107ec7edb <+171>: movq   %r10, %rdi
>      0x107ec7ede <+174>: movq   %r8, %rsi
>      0x107ec7ee1 <+177>: movq   %r10, %rbx
> 
> and relevant part of the backtrace:
> 
> (lldb) bt
> * thread #1, queue = 'com.apple.main-thread', stop reason =
> EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
>    * frame #0: 0x0000000107ec7ed5 Rmpfr.so`mpfr_get_str_aux + 165
>      frame #1: 0x0000000107ec78da Rmpfr.so`mpfr_get_str + 2890
>      frame #2: 0x0000000107eb9c9e Rmpfr.so`mpfr2str(x=0x00000001053ed768,
> digits=<unavailable>, maybeFull=<unavailable>, base=<unavailable>) at
> convert.c:608:2 [opt]
>      < ... >
> 
> If I understand correctly, 'adcx' was introduced with Broadwell CPUs (so,
> October 2014) and so that could explain why I'm seeing this crash. It'd be
> helpful if others could try to verify with newer / older macOS machines,
> though.
> 
>> sessionInfo()
> R version 4.1.2 (2021-11-01)
> Platform: x86_64-apple-darwin17.0 (64-bit)
> Running under: macOS Big Sur 10.16
> 
> Best,
> Kevin
> 
> On Sun, Nov 28, 2021 at 6:22 PM Simon Urbanek <simon.urbanek using r-project.org>
> wrote:
> 
>> Kevin,
>>
>> that is a different story, yes, Rosetta2 is incomplete - the advice on M1
>> is to use native R.
>>
>> Cheers,
>> Simon
>>
>>
>>> On Nov 29, 2021, at 12:30 PM, Kevin Ushey <kevinushey using gmail.com> wrote:
>>>
>>> I can reproduce something similar on my M1 macOS machine, when using the
>>> x86_64 build of R. I see:
>>>
>>>> x1 <- mpfr(-50, 200)
>>> *** caught illegal operation ***
>>> address 0x10c5f623b, cause 'illegal opcode'
>>>
>>> This is with the binary of Rmpfr 0.8-7 as from CRAN, with R 4.1.2. Here's
>>> what LLDB says:
>>>
>>> * thread #1, queue = 'com.apple.main-thread', stop reason =
>>> EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
>>>     frame #0: 0x000000010f69c23b Rmpfr.so`mpfr_set_d + 43
>>> Rmpfr.so`mpfr_set_d:
>>> ->  0x10f69c23b <+43>: vucomisd %xmm0, %xmm0
>>>     0x10f69c23f <+47>: jp     0x10f69c39a               ; <+394>
>>>     0x10f69c245 <+53>: vpxor  %xmm1, %xmm1, %xmm1
>>>     0x10f69c249 <+57>: vucomisd %xmm1, %xmm0
>>>
>>> And the relevant part of the stack trace:
>>>
>>> (lldb) bt
>>> * thread #1, queue = 'com.apple.main-thread', stop reason =
>>> EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
>>>   * frame #0: 0x000000010f69c23b Rmpfr.so`mpfr_set_d + 43
>>>     frame #1: 0x000000010f6809d3 Rmpfr.so`d2mpfr1_(x=-50,
>>> i_prec=<unavailable>, rnd=MPFR_RNDN) at convert.c:129:5 [opt]
>>>     frame #2: 0x000000010f680eb0 Rmpfr.so`d2mpfr1_list(x=<unavailable>,
>>> prec=<unavailable>, rnd_mode=<unavailable>) at convert.c:186:29 [opt]
>>>
>>> At least for my case, my guess is that the 'vucomisd' instruction isn't
>>> available via Apple's Rosetta emulation. It's possible users with older
>>> macOS machines not supporting AVX instructions could see this, as well?
>>>
>>> Best,
>>> Kevin
>>>
>>> On Sun, Nov 28, 2021 at 9:54 AM Richard M. Heiberger <rmh using temple.edu>
>> wrote:
>>>
>>>> Works normally in R-4.1.2 with Rmpfr_0.8-7 on Macintosh
>>>> aarch64-apple-darwin20
>>>> I am running inside Emacs using ESS
>>>>
>>>>> packageVersion("Rmpfr")
>>>> [1] ‘0.8.7’
>>>>> library(Rmpfr)
>>>> Loading required package: gmp
>>>>
>>>> Attaching package: ‘gmp’
>>>>
>>>> The following objects are masked from ‘package:base’:
>>>>
>>>>     %*%, apply, crossprod, matrix, tcrossprod
>>>>
>>>> C code of R package 'Rmpfr': GMP using 64 bits per limb
>>>>
>>>>
>>>> Attaching package: ‘Rmpfr’
>>>>
>>>> The following object is masked from ‘package:gmp’:
>>>>
>>>>     outer
>>>>
>>>> The following objects are masked from ‘package:stats’:
>>>>
>>>>     dbinom, dgamma, dnbinom, dnorm, dpois, dt, pnorm
>>>>
>>>> The following objects are masked from ‘package:base’:
>>>>
>>>>     cbind, pmax, pmin, rbind
>>>>
>>>>> x1 <- mpfr(-50, 200)
>>>>> x1
>>>> 1 'mpfr' number of precision  200   bits
>>>> [1] -50
>>>>> x2 <- mpfr(-50.1, 200)
>>>>> x2
>>>> 1 'mpfr' number of precision  200   bits
>>>> [1] -50.10000000000000142108547152020037174224853515625
>>>>> version
>>>>                _
>>>> platform       aarch64-apple-darwin20
>>>> arch           aarch64
>>>> os             darwin20
>>>> system         aarch64, darwin20
>>>> status
>>>> major          4
>>>> minor          1.2
>>>> year           2021
>>>> month          11
>>>> day            01
>>>> svn rev        81115
>>>> language       R
>>>> version.string R version 4.1.2 (2021-11-01)
>>>> nickname       Bird Hippie
>>>>>
>>>>
>>>>> On Nov 27, 2021, at 15:46, Dev Chakraborty <dpc10ster using gmail.com>
>> wrote:
>>>>>
>>>>> I used package Rmpfr ca. 2017 and it worked fine. The latest version
>>>>> (0.8-7) causes R (running under RStudio) to crash. A simple example is:
>>>>>
>>>>> library(Rmpfr)
>>>>> x1 <- mpfr(-50, 200)
>>>>> x2 <- mpfr(-50.1, 200)
>>>>>
>>>>> Which gives the message:
>>>>>
>>>>> R Session Aborted
>>>>> R encountered a fatal error
>>>>> The session was terminated
>>>>> Start New Session
>>>>>
>>>>> I am using R version 4.1.1 on a Mac running MacOS 12.0.1. and an older
>>>> iMac
>>>>> running 10.15.7. The problem occurs with both machines.
>>>>>
>>>>> When I install from the CRAN archive file  Rmpfr_0.6-1.tar.gz (the
>>>> version
>>>>> of the package around 2017, corresponding to the last time I used it)
>> the
>>>>> problem goes away.
>>>>>
>>>>>       [[alternative HTML version deleted]]
>>>>>
>>>>> _______________________________________________
>>>>> R-SIG-Mac mailing list
>>>>> R-SIG-Mac using r-project.org
>>>>>
>>>>
>> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-sig-mac&data=04%7C01%7Crmh%40temple.edu%7C3aabc743f322409d6fa308d9b259a7bb%7C716e81efb52244738e3110bd02ccf6e5%7C0%7C0%7C637736920545174898%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=pNPM8x8q1%2BQxq4QevSbfjlcO44vDVEyUvsRlfDBfgBo%3D&reserved=0
>>>>
>>>> _______________________________________________
>>>> R-SIG-Mac mailing list
>>>> R-SIG-Mac using r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-SIG-Mac mailing list
>>> R-SIG-Mac using r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>
>>
>>
> 
> 	[[alternative HTML version deleted]]
> 
> _______________________________________________
> 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