[R-SIG-Mac] Problem with multicore/doMC/foreach combo on Leopard
Steve Lianoglou
mailinglist.honeypot at gmail.com
Tue Jul 28 23:50:57 CEST 2009
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
More information about the R-SIG-Mac
mailing list