Bug 1047473 - Fail to install missing dependencies to PHP-5.4 app via deplist.txt
Summary: Fail to install missing dependencies to PHP-5.4 app via deplist.txt
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Online
Classification: Red Hat
Component: Image
Version: 2.x
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Vojtech Vitek
QA Contact: libra bugs
URL:
Whiteboard:
: 1046282 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-31 09:31 UTC by Zhe Wang
Modified: 2015-05-15 00:36 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-01-30 00:54:28 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Zhe Wang 2013-12-31 09:31:26 UTC
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:

Comment 1 Zhe Wang 2013-12-31 09:39:49 UTC
There is no such problem for PHP-5.3 apps.

Comment 2 Zhe Wang 2013-12-31 09:43:28 UTC
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/

Comment 3 Lei Zhang 2014-01-10 06:06:54 UTC
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

Comment 4 Vojtech Vitek 2014-01-10 11:39:43 UTC
*** Bug 1046282 has been marked as a duplicate of this bug. ***

Comment 5 Vojtech Vitek 2014-01-10 14:40:27 UTC
https://github.com/openshift/origin-server/pull/4450

Comment 6 openshift-github-bot 2014-01-15 21:45:19 UTC
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&registry 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

Comment 7 Lei Zhang 2014-01-16 06:23:00 UTC
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

Comment 8 Lei Zhang 2014-01-16 06:47:25 UTC
Sorry, I made a mistake, not verified on INT(4227), verified it on devenv_4228


Note You need to log in before you can comment on or make changes to this bug.