[R-SIG-Mac] Problem with multicore/doMC/foreach combo on Leopard

Steve Lianoglou mailinglist.honeypot at gmail.com
Fri Aug 21 17:31:35 CEST 2009


Hi,

I just wanted to post a follow up on this issue. It seems that someone  
notified Steve Weston of my problems shortly after I sent this email  
to the list and he was kind enough to exchange a few words with me off  
list (thanks to both of you!).

It looks as if this problem w/ the doMC backend was coming from my  
having been sourcing the "/Applications/R.app/Contents/Resources/GUI- 
tools.R" file in my ~/.Rprofile in order to get some functionality  
like quartz.save(..) when running from terminal (I don't really use  
R.app all that often).

I just wanted to let folks (and google) know that this problem hasn't  
popped up for me since I've stopped sourcing that file. I actually got  
the idea to source that file off some message in this list a while  
ago, so perhaps putting this message out there will help anyone who  
might find themselves in a similar situation I landed in.

Thanks for the help,

-steve

On Jul 28, 2009, at 5:50 PM, Steve Lianoglou wrote:

> Hi all,
>
> I'm posting this here first because (i) this might be a problem  
> specific to macs, and (ii) Simon is the maintainer of the multicore  
> package.
>
> I'm using the doMC package to use the multicore library as a backend  
> for the foreach library.
>
> Every now and again  I'm getting mess-load of these errors when I  
> run a new "multicore task" via:
>
> foreach ( ... ) %dopar% {
>   ...
> }
>
> That look like so:
>
> === Error ===
>
> *** caught segfault ***
> address 0x1c86b7d80, cause 'memory not mapped'
> The process has forked and you cannot use this CoreFoundation  
> functionality safely. You MUST exec().
> Break on  
> __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ 
> () to debug.
> The process has forked and you cannot use this CoreFoundation  
> functionality safely. You MUST exec().
> Break on  
> __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__ 
> () to debug.
>
> ==========
>
> I'm guessing it might be mac specific due to (i) reference to  
> CoreFoundation, and (ii) this answer given by Scott Lahteine in this  
> thread:
> http://discussions.apple.com/thread.jspa?threadID=1209537&tstart=0
>
> Which I'm pasting here:
>
> ======
> This is caused by programs that use the fork() or daemon() function  
> in combination with higher-level APIs. In Leopard you cannot use the  
> CoreFoundation (CF...) APIs on the child side of a fork() without  
> following it with an exec*() function. This has always been true,  
> but Leopard is much more stingy about this kind of thing.
>
> To solve this issue, uninstall all third-party drivers and system  
> customizers, then reinstall them with the latest versions, and make  
> sure those versions have been updated for Leopard. Any drivers and  
> background software that use CF but haven't been updated for Leopard  
> will continue to output these messages, even though they may  
> function fine.
> ======
>
> Does this suggest that the multicore package needs some updating for  
> leapord, or am I barking up the wrong tree? I don't see (nor would  
> have expected to see) any calls to CoreFoundation specific API's in  
> the multicore::fork.c file, so I'm not sure what's up since neither  
> doMC or foreach have any C code in them.
>
> I'm running OS X.5.7 and 64-bit R 2.9.1. sessionInfo() is pasted below
>
> I'll ask again in the main R-help if that's more appropriate.
>
> Thanks,
>
> -steve
>
> > sessionInfo()
> R version 2.9.1 Patched (2009-06-28 r48863)
> x86_64-apple-darwin9.7.0
>
> locale:
> en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] doMC_1.1.1      multicore_0.1-3 foreach_1.2.1   codetools_0.2-2
> [5] iterators_1.0.1
>
> --
> Steve Lianoglou
> Graduate Student: Computational Systems Biology
>  |  Memorial Sloan-Kettering Cancer Center
>  |  Weill Medical College of Cornell University
> Contact Info: http://cbio.mskcc.org/~lianos/contact
>

--
Steve Lianoglou
Graduate Student: Computational Systems Biology
   |  Memorial Sloan-Kettering Cancer Center
   |  Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact



More information about the R-SIG-Mac mailing list