[MacPorts] #16340: PHP throwing fork()ing error

MacPorts noreply at macports.org
Mon Aug 18 09:12:47 PDT 2008


#16340: PHP throwing fork()ing error
----------------------------------+-----------------------------------------
 Reporter:  cabanela at mnstate.edu  |       Owner:  macports-tickets at lists.macosforge.org
     Type:  defect                |      Status:  new                                  
 Priority:  Normal                |   Milestone:                                       
Component:  ports                 |     Version:  1.6.0                                
 Keywords:                        |  
----------------------------------+-----------------------------------------
 Honestly, I think this error is in the OS (or its origin is), but I am
 sitting here pulling my hair out.

 I have several PHP scripts that call a PHP package called JpGraph to
 generate graphs. I should not I had been using Apple's built-in PHP and
 APache servers.  Since upgrading to Leopard, the following error is
 recorded in the Apache2 error_log

 {{{
 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 discovered that the PDFLIb folks have documented this problem a little
 better, copying from their documentation here
 == http://www.pdflib.com/fileadmin/pdflib/pdf/support/PDFlib-in-PHP-
 HowTo.pdf ==
 ''Apple’s PHP version which is bundled with Mac OS X does not work with
 PDFlib DSOs. To use PHP with PDFlib on Mac OS X you need third-party PHP
 packages such as MAMP, XAMP[P] for Mac, or Marc Liyanage’s version from
 www.entropy.ch. Mac OS X 10.5 (Leopard) adds new complications. As
 described in
 developer.apple.com/releasenotes/CoreFoundation/CoreFoundation.html it is
 no longer possible to use CoreFoundation functions after a call to fork( )
 without exec( ). However, CoreFoundation functions are required for
 PDFlib’s host font feature, and the critical sequence above is used in the
 combination of Apache and PHP.''

 I went ahead and installed Apache2 and PHP5 via MacPorts and configured
 them properly and discovered to my joy that my old graphics generating
 scripts were working... for 48 hours.  My Mac locked up over the weekend
 (not sure why, it was the first time, maybe related), and when I reboot, I
 discovered now that the MacPorts PHP installation is now tossing the same
 errors.

 This has really confused me:

 1. Can someone explain if the PDFLib folks were correct that you could
 avoid these errors with a non-Apple PHP installation or is this an
 unavoidable OS feature (which would make sense, I suppose)?

 2. If this is avoidable, can someone with more PHP knowledge than me
 explain how to configure PHP to avoid "forking" in a manner offensive to
 Apple?

-- 
Ticket URL: <http://trac.macports.org/ticket/16340>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list