Проблема с настройкой RApache в OS X 10.5.8

Я пытался правильно настроить RApache на своем Macbook Pro под управлением OS X 10.5.8. После успешной установки RApache (я думаю) я добавил следующее в файл httpd.conf, как это предлагается в руководстве.

LoadModule R_module /apache/module/path/mod_R.so 
ROutputErrors
<Location /RApacheInfo> 
    SetHandler r-info 
</Location> 

Благодаря этим дополнениям я смог успешно перейти на http://localhost/RApacheInfo и просмотреть информацию о состоянии. Если я добавлю следующую дополнительную строку REvalOnStartup "library(brew)", я больше не смогу успешно загрузить страницу RApacheInfo.

Я не знаю, в чем здесь дело. Без вызова REvalOnStartup я вижу следующее в журнале ошибок Apache.

[Fri Feb 26 11:36:36 2010] [notice] Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.7l DAV/2 mod_R/1.1.8 R/2.10.1 configured -- resuming normal operations
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.

Нехороший знак. Любые мысли о том, что может происходить? Или что проверить?

Крис


person Chris    schedule 26.02.2010    source источник


Ответы (1)


Я не уверен, почему вы получаете эту ошибку только при загрузке библиотеки, но мы видели эту проблему в Leopard из-за того, что библиотеки Apple freetype/fontconfig/cairo вызывают вызовы CoreFoundation:

http://finzi.psych.upenn.edu/R/Rhelp02/archive/118681.html

Как вы установили R?

Я попытался воспроизвести вашу проблему на Snow Leopard со стандартным apache2, двоичным файлом R 2.10.1 из CRAN, Xcode 3.2.1 и rapche 1.1.8, но безуспешно. Моя установка работала как чемпион.

У меня больше нет доступа к Leopard, поэтому лучше всего использовать gdb для прерывания этого очень длинного системного вызова. Вы захотите удалить директиву REvalonStartup и заменить ее вызовом обработчика, который делает то же самое, настроить apache для порождения только одного дочернего процесса (отсюда и весь форк) и подключить к нему gdb. Затем укажите в веб-браузере URL-адрес вашего обработчика и посмотрите, не сломается ли gdb при выполнении функции, а затем посмотрите на трассировку стека... Знаю, довольно неубедительно, но на данный момент это все, что у меня есть.

person Jeff    schedule 01.03.2010
comment
Привет, Джефф! Я скачал предварительно скомпилированную версию R 2.10.1 с сайта r-project.org. Поскольку это была 32-разрядная версия, мне пришлось указать Apache работать в 32-разрядном режиме, чтобы добиться того, что я сделал. Поймите, я не упоминал об этом раньше, на случай, если это может иметь значение. Похоже, обновление до Snow Leopard может облегчить мою жизнь... ;-) Спасибо за ответ... Крис - person Chris; 03.03.2010