Package home | Report new bug | New search | Development Roadmap Status: Open | Feedback | All | Closed Since Version 1.9.5

Bug #7196 PEAR crashes when using autoload_prepend_file
Submitted: 2006-03-24 09:07 UTC Modified: 2006-03-27 15:17 UTC
From: RQuadling at GMail dot com Assigned: cellog
Status: Closed Package: PEAR (version 1.5.0)
PHP Version: 5_1 CVS-2006-03-24 OS: Windows XP SP2
Roadmaps: (Not assigned)    
Subscription  


 [2006-03-24 09:07 UTC] RQuadling at GMail dot com (Richard Quadling)
Description: ------------ I've just started using an autoload file and have set the PHP-CLI.INI/PHP-ISAPI.INI setting of auto_prepend_file The include path in the ini files contains ... include_path="C:\PEAR\pear\;.\;D:\Data\PHP\Includes\" The autoload.inc is in D:\Data\PHP\Includes\. At the command prompt, if I type PEAR[ENTER] I get ... Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0 Warning: Unknown: Failed opening 'auto_loader.php' for inclusion (include_path='C:\PEAR\PEAR') in Unknown on line 0 In looking at the pear.bat file, I put an echo in front of the run line and then re-ran pear.bat and got ... "C:\PHP5\php.exe" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d include_path="C:\PEAR\PEAR" -f "C:\PEAR\PEAR\pearcmd.php" -- This is the issue. The include path has been amended to NOT include the directory for my include files. No problem with that. I would recommend that adding -d auto_prepend_file= to the run line ... :RUN "%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file= -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END would alleviate this problem. The following patch should achieve this. Index: pear.bat =================================================================== RCS file: /repository/pear-core/scripts/pear.bat,v retrieving revision 1.24 diff -u -r1.24 pear.bat --- pear.bat 23 Jan 2006 16:30:14 -0000 1.24 +++ pear.bat 24 Mar 2006 14:05:40 -0000 @@ -110,6 +110,6 @@ ECHO %PHP_PEAR_PHP_BIN% GOTO END :RUN -"%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 +"%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file= -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END @ECHO ON \ No newline at end of file

Comments

 [2006-03-24 09:09 UTC] RQuadling at GMail dot com
Oh. Cutting and pasting the patch has made a mess. Basically adding -d auto_prepend_file= is needed to not use any autoloading.
 [2006-03-25 16:16 UTC] cellog (Greg Beaver)
This bug has been fixed in CVS. If this was a documentation problem, the fix will appear on pear.php.net by the end of next Sunday (CET). If this was a problem with the pear.php.net website, the change should be live shortly. Otherwise, the fix will appear in the package's next release. Thank you for the report and for helping us make PEAR better. fixed in HEAD, will be in PEAR 1.5.0
 [2006-03-27 01:39 UTC] RQuadling at GMail dot com
Dozy me! If PEAR is going to crash with auto_prepend_file, PEAR will also crash with auto_append_file! -d auto_append_file="" also needed. P.S. Sorry for re-opening the bug. Patch for pear.bat / pear.sh / peardev.bat / peardev.sh Index: pear.bat =================================================================== RCS file: /repository/pear-core/scripts/pear.bat,v retrieving revision 1.25 diff -u -r1.25 pear.bat --- pear.bat 25 Mar 2006 21:15:29 -0000 1.25 +++ pear.bat 27 Mar 2006 07:36:29 -0000 @@ -110,6 +110,6 @@ ECHO %PHP_PEAR_PHP_BIN% GOTO END :RUN -"%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file="" -d register_argc_argv="On" -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 +"%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file="" -d auto_append_file="" -d register_argc_argv="On" -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END @ECHO ON \ No newline at end of file Index: pear.sh =================================================================== RCS file: /repository/pear-core/scripts/pear.sh,v retrieving revision 1.5 diff -u -r1.5 pear.sh --- pear.sh 25 Mar 2006 21:15:29 -0000 1.5 +++ pear.sh 27 Mar 2006 07:36:29 -0000 @@ -25,4 +25,4 @@ fi fi -exec $PHP -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" $INCDIR/pearcmd.php "$@" +exec $PHP -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" $INCDIR/pearcmd.php "$@" Index: peardev.bat =================================================================== RCS file: /repository/pear-core/scripts/peardev.bat,v retrieving revision 1.4 diff -u -r1.4 peardev.bat --- peardev.bat 25 Mar 2006 21:15:29 -0000 1.4 +++ peardev.bat 27 Mar 2006 07:36:29 -0000 @@ -110,6 +110,6 @@ ECHO %PHP_PEAR_PHP_BIN% GOTO END :RUN -"%PHP_PEAR_PHP_BIN%" -C -d memory_limit="-1" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d open_basedir="" -d output_buffering=1 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 +"%PHP_PEAR_PHP_BIN%" -C -d memory_limit="-1" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" -d open_basedir="" -d output_buffering=1 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END @ECHO ON \ No newline at end of file Index: peardev.sh =================================================================== RCS file: /repository/pear-core/scripts/peardev.sh,v retrieving revision 1.4 diff -u -r1.4 peardev.sh --- peardev.sh 25 Mar 2006 21:15:29 -0000 1.4 +++ peardev.sh 27 Mar 2006 07:36:29 -0000 @@ -25,4 +25,4 @@ fi fi -exec $PHP -d memory_limit="-1" -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" $INCDIR/pearcmd.php "$@" +exec $PHP -d memory_limit="-1" -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" $INCDIR/pearcmd.php "$@" Is this the best way to submit patches for bugs? As an aside, the pecl.bat / pecl.sh use PHP -n ... no php.ini file. Could this be appropriate for PEAR? Save having to add all these -d's?
 [2006-03-27 15:17 UTC] cellog (Greg Beaver)
-n removes all installed extensions, which will break extension dependencies, so no, this is not OK for pear command. The pecl command is used to replace extensions, and so they must be unloaded from memory. this is now fully fixed