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

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to