Bug 1038376

Summary: 2.0.37 upgrade should apply 2.0.35 upgrade to missed gears
Product: OpenShift Online Reporter: Paul Morie <pmorie>
Component: ContainersAssignee: Paul Morie <pmorie>
Status: CLOSED CURRENTRELEASE QA Contact: libra bugs <libra-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.xCC: agoldste, bmeng, xtian
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-30 00:52:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1038881    
Bug Blocks:    

Description Paul Morie 2013-12-05 02:20:27 UTC
During the 2.0.35 upgrade, around 60 gears were not upgraded with the changes for the new deployment system.  The 2.0.37 upgrade should apply this upgrade for the gears that were missed.  There is already a PR merged for this issue.

Comment 1 Meng Bo 2013-12-05 11:23:28 UTC
Migration is blocked by the inode quota change.

Comment 2 Meng Bo 2013-12-09 11:09:08 UTC
Not sure if it is an issue.

During test this bug, I simulated the old app with copy the dependencies dir to overwrite the symlink and remove the app-dependency dir.

[root@ip-10-238-166-75 php]# rm -f phplib 
[root@ip-10-238-166-75 php]# cp -r --preserve=all /var/lib/openshift/52a5a18b14a5f3f49c0000c3/app-root/runtime/dependencies/php/phplib phplib


But meet the following error.

            "Backed up cartridge php dependency php/phplib", 
            "Created cartridge dependency dirs for php", 
            "Restoring dep backup from /var/lib/openshift/52a5a18b14a5f3f49c0000c3/php/phplib.backup based on dep_dir php/phplib and dep_path /var/lib/openshift/52a5a18b14a5f3f49c0000c3/php/phplib", 
            "Caught an exception during upgrade: Couldn't move dep contents from /var/lib/openshift/52a5a18b14a5f3f49c0000c3/php/phplib.backup to /var/lib/openshift/52a5a18b14a5f3f49c0000c3/php/phplib: mv: cannot move `/var/lib/openshift/52a5a18b14a5f3f49c0000c3/php/phplib.backup/pear' to `/var/lib/openshift/52a5a18b14a5f3f49c0000c3/php/phplib/pear': Directory not empty\n", 


After that, check the phplib.backup dir

[root@ip-10-238-166-75 phplib.backup]# ls
pear

Assign this back to have a look.

Thanks.

Comment 3 Andy Goldstein 2013-12-09 15:06:28 UTC
Looking at your command history, I see you removed app-deployments as well. If you do that, you also really need to make the app look more like a pre 2.0.35 app, meaning you'd need to delete at least app-root/runtime/dependencies, app-root/runtime/build-dependencies as well.

Comment 4 Meng Bo 2013-12-10 09:07:47 UTC
@andy,

I have tried again on devenv-stage_604 with your comment.

But still meet the issue in my comment#2

Paste more about the error log:

            "pre_cartridge_upgrade": {
                "context": {}, 
                "errors": [
                    "Unhandled exception performing step: Couldn't move dep contents from /var/lib/openshift/52a6d70c0e61d60768000062/php/phplib.backup to /var/lib/openshift/52a6d70c0e61d60768000062/php/phplib: mv: cannot move `/var/lib/openshift/52a6d70c0e61d60768000062/php/phplib.backup/pear' to `/var/lib/openshift/52a6d70c0e61d60768000062/php/phplib/pear': Directory not empty\n\n/usr/libexec/openshift/lib/gear_upgrade_extension.rb:280:in `block (4 levels) in migrate_deployment_system_pre'\n/usr/libexec/openshift/lib/gear_upgrade_extension.rb:270:in `each'\n/usr/libexec/openshift/lib/gear_upgrade_extension.rb:270:in `block (3 levels) in migrate_deployment_system_pre'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/v2_cart_model.rb:80:in `block in each_cartridge'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/v2_cart_model.rb:1091:in `block in process_cartridges'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/v2_cart_model.rb:1089:in `each'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/v2_cart_model.rb:1089:in `process_cartridges'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/v2_cart_model.rb:78:in `each_cartridge'\n/usr/libexec/openshift/lib/gear_upgrade_extension.rb:249:in `block (2 levels) in migrate_deployment_system_pre'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/utils/upgrade_progress.rb:32:in `step'\n/usr/libexec/openshift/lib/gear_upgrade_extension.rb:248:in `block in migrate_deployment_system_pre'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/utils/upgrade_progress.rb:32:in `step'\n/usr/libexec/openshift/lib/gear_upgrade_extension.rb:182:in `migrate_deployment_system_pre'\n/usr/libexec/openshift/lib/gear_upgrade_extension.rb:172:in `pre_cartridge_upgrade'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/upgrade.rb:418:in `block in pre_cartridge_upgrade'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/utils/upgrade_progress.rb:32:in `step'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/upgrade.rb:417:in `pre_cartridge_upgrade'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/upgrade.rb:454:in `upgrade_cartridges'\n/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-node-1.18.2/lib/openshift-origin-node/model/upgrade.rb:159:in `execute'\n/opt/rh/ruby193/root/usr/libexec/mcollective/mcollective/agent/openshift.rb:241:in `upgrade_action'\n/opt/rh/ruby193/root/usr/share/ruby/mcollective/rpc/agent.rb:86:in `handlemsg'\n/opt/rh/ruby193/root/usr/share/ruby/mcollective/agents.rb:126:in `block (2 levels) in dispatch'\n/opt/rh/ruby193/root/usr/share/ruby/timeout.rb:69:in `timeout'\n/opt/rh/ruby193/root/usr/share/ruby/mcollective/agents.rb:125:in `block in dispatch'"
                ], 
                "status": "incomplete"
            },

Comment 5 Meng Bo 2013-12-10 10:20:55 UTC
Checked again with more steps:

#rm -rf ~/app-root/runtime/dependencies ~/app-root/runtime/build_dependencies
#rm -rf ~/app-root/dependencies ~/app-root/build_dependencies
#rm -rf ~/php/phplib
#cp -r --preserve=all ~/app-root/runtime/dependencies/php/phplib ~/php/phplib
#rm -rf ~/app-deployments/

Then do gear upgrade, the upgrade got successfully.

Please move this bug, and we can close it. And this should not be a blocker.

Thanks.

Comment 6 Meng Bo 2013-12-10 10:22:09 UTC
So hurry... please move the bug back to ON_QA

Comment 7 Xiaoli Tian 2013-12-10 10:36:49 UTC
Move it back to ON_QA since it's just assigned back due to incorrect reproduce steps.

Comment 8 Xiaoli Tian 2013-12-10 10:37:25 UTC
Move it to Verified according to testing result in comment 5.