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