Description of problem: Given a PHP-5.4 app, when installing a package via deplist.txt, which is not supported by OpenShift, stdout always shows the package is already installed, but the package is still missing after deployments. Version-Release number of selected component (if applicable): devenv_4173 How reproducible: always Steps to Reproduce: 1. create a PHP-5.4 app 2. SSH into this app, and check if a given package (e.g., Validate-0.8.5) is installed via "pear list" 3. Verify the package is indeed missing via web access, for example, <---dependency.php--> <?php include "Validate.php"; // the module here could be replaced by other missing // packages if (Validate::number(8.0004, array('decimal' => '.', 'dec_prec' => 4))) { echo 'version 1'; } else { echo "Invalid number"; } ?> <-------------------> 4. install the missing package via deplist.txt 5. check if the package is installed via "pear list" in the app 6. visit the dependency.php to check if the package is usable. 7. install the missing package in the app via "pear install" 8. repeat step 6 Actual results: In Step 2, the package is not installed in the app by default: [php54-dev4173tst.dev.rhcloud.com pear]\> pear list Validate `Validate' not installed and the dependency.php page returns 500 when visiting it. Moreover, installing the package via git-push shows that the package is already installed by the system: remote: Extension already installed in the system: Validate-0.8.5 remote: Preparing build for deployment remote: Deployment id is 6419264c remote: Activating deployment but when checking via "pear list" after the deployment, the Validate package is still missing and the dependency.php page is still inaccessible. After installing the package via "pear install" in the app, the dependency.php page returns the expected string. Expected results: The missing dependency should be installed literally when specifying it in the deplist.txt. Additional info:
There is no such problem for PHP-5.3 apps.
remote: Checking pear: Validate-0.8.5 remote: remote: Failed to download pear/Net_IDNA within preferred state "stable", latest release is version 0.8.1, stability "beta", use "channel://pear.php.net/Net_IDNA-0.8.1" to install remote: pear/Validate can optionally use package "pear/Net_IDNA" (version >= 0.7.1) remote: downloading Validate-0.8.5.tgz ... remote: Starting to download Validate-0.8.5.tgz (21,668 bytes) remote: ........done: 21,668 bytes remote: downloading Date-1.4.7.tgz ... remote: Starting to download Date-1.4.7.tgz (55,754 bytes) remote: ...done: 55,754 bytes remote: install ok: channel://pear.php.net/Validate-0.8.5 remote: install ok: channel://pear.php.net/Date-1.4.7 remote: Preparing build for deployment remote: Deployment id is 538e2bcb remote: Activating deployment remote: Starting PHP cartridge remote: Result: success remote: Activation status: success remote: Deployment completed with status: success To ssh://52c282cdc057e9468d0000c0.rhcloud.com/~/git/php53.git/
This issue still exists in devenv_4205, no related package was installed via "pear install" in rhcsh after git-push 1. git push remote: Stopping PHP cartridge remote: Waiting for stop to finish remote: Building git ref 'master', commit 0e5d6be remote: Building PHP cartridge remote: Checking pear: channel://pear.php.net/Validate-0.8.4 remote: remote: PHP Warning: is_dir(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in /opt/rh/php54/root/usr/share/pear/PEAR/Command/Registry.php on line 255 remote: PHP Warning: is_dir(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in /opt/rh/php54/root/usr/share/pear/PEAR/Command/Registry.php on line 255 remote: PHP Warning: file_exists(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in /opt/rh/php54/root/usr/share/pear/PEAR/Command/Registry.php on line 255 remote: Extension already installed in the system: channel://pear.php.net/Validate-0.8.4 remote: Preparing build for deployment remote: Deployment id is 8311d8bc remote: Activating deployment remote: Starting PHP cartridge remote: Result: success remote: Activation status: success remote: Deployment completed with status: success To ssh://52cf8a57f2a2b7922700004b.rhcloud.com/~/git/myphp54.git/ d36d06a..0e5d6be master -> master 2. check no related package installed [myphp54-chunchen.dev.rhcloud.com 52cf8a57f2a2b7922700004b]\> pear list Validate `Validate' not installed
*** Bug 1046282 has been marked as a duplicate of this bug. ***
https://github.com/openshift/origin-server/pull/4450
Commit pushed to master at https://github.com/openshift/origin-server https://github.com/openshift/origin-server/commit/d62bb4c3d394cc8ea2a7abbf7ca18d09d57e3c86 fix php cart PEAR builds - ignore checking for php extensions, as they're not PEARs - do not fail on upgrading PEAR to the same specific version - upgrade each PEAR with all dependencies - prevent malforming PEAR cache®istry files Bug 1047473 - Fail to install missing dependencies to PHP-5.4 app via deplist.txt - https://bugzilla.redhat.com/show_bug.cgi?id=1047473 Bug 1045338 - Failed to create drupal quickstart with php-5.4 cartridge in INT - https://bugzilla.redhat.com/show_bug.cgi?id=1045338 Bug 1046048 - Mail PEAR causes errors during deploy, no email capabilities - https://bugzilla.redhat.com/show_bug.cgi?id=1046048 Bug 977036 - PHP gear creating throwing PEAR warnings to platform logs - https://bugzilla.redhat.com/show_bug.cgi?id=977036
Verified on INT(devenv_4227) remote: Stopping PHP 5.4 cartridge (Apache+mod_php) remote: [Thu Jan 16 01:20:05 2014] [warn] PassEnv variable SHELL was undefined remote: [Thu Jan 16 01:20:05 2014] [warn] PassEnv variable USER was undefined remote: [Thu Jan 16 01:20:05 2014] [warn] PassEnv variable LOGNAME was undefined remote: Waiting for stop to finish remote: Building git ref 'master', commit 367b8f9 remote: Checking deplist.txt for PEAR dependency.. remote: Checking PEAR: channel://pear.php.net/Validate-0.8.4 remote: remote: PHP Warning: is_file(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in /opt/rh/php54/root/usr/share/pear/PEAR/Command/Registry.php on line 427 remote: PHP Warning: is_file(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in /opt/rh/php54/root/usr/share/pear/PEAR/Command/Registry.php on line 427 remote: Failed to download pear/Net_IDNA within preferred state "stable", latest release is version 0.8.1, stability "beta", use "channel://pear.php.net/Net_IDNA-0.8.1" to install remote: pear/Validate can optionally use package "pear/Net_IDNA" (version >= 0.7.1) remote: downloading Validate-0.8.4.tgz ... remote: Starting to download Validate-0.8.4.tgz (20,809 bytes) remote: ........done: 20,809 bytes remote: downloading Date-1.4.7.tgz ... remote: Starting to download Date-1.4.7.tgz (55,754 bytes) remote: ...done: 55,754 bytes remote: install ok: channel://pear.php.net/Validate-0.8.4 remote: install ok: channel://pear.php.net/Date-1.4.7 remote: remote: Preparing build for deployment remote: Deployment id is 4e05fb2b remote: Activating deployment remote: Starting PHP 5.4 cartridge (Apache+mod_php) remote: Result: success remote: Activation status: success remote: Deployment completed with status: success To ssh://52d779a4a8322523dc0003b9.rhcloud.com/~/git/myphp54.git/ 14de2bf..367b8f9 master -> master
Sorry, I made a mistake, not verified on INT(4227), verified it on devenv_4228