Bug 1019732

Summary: Some broken symlinks generated under gear home dir & app is not accessible after gear upgrade
Product: OpenShift Online Reporter: Meng Bo <bmeng>
Component: ContainersAssignee: Dan Mace <dmace>
Status: CLOSED CURRENTRELEASE QA Contact: libra bugs <libra-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.xCC: bmeng, dmace, pmorie, 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-24 03:24:26 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:

Description Meng Bo 2013-10-16 10:02:21 UTC
Description of problem:
Upgrade server from sprint34 to latest devenv, after oo-admin-upgrade, there are some broken symlinks under gear's home dir, and the app cannot be visited.


[525e366bb39175593d0000e5] # find . -type l|xargs file |grep broken
./app-root/dependencies:                                        broken symbolic link to `/var/lib/openshift/525e366bb39175593d0000e5/app-root/runtime/dependencies'
./app-root/repo:                                                broken symbolic link to `/var/lib/openshift/525e366bb39175593d0000e5/app-root/runtime/repo'
./app-root/build-dependencies:                                  broken symbolic link to `/var/lib/openshift/525e366bb39175593d0000e5/app-root/runtime/build-dependencies'



Version-Release number of selected component (if applicable):
devenv_3901

How reproducible:
always

Steps to Reproduce:
1. Create app on devenv-stage_496
2. Upgrade the server and migrate the datastore 
3. Upgrade gears with oo-admin-upgrade
#oo-admin-upgrade upgrade-node --version 2.0.35 --ignore-cartridge-version
4. Check the gear home dir after upgrade

Actual results:
There are some broken symlinks for the gear and the app cannot work well.

Expected results:
The app should work well and the symlinks point to the correct path.

Additional info:
After deploy build from client side, the app can works well and the symlinks point to the right path.
But new broken symlink generated under app-deployments dir:

[app-deployments]# find -L . -type l|xargs file|grep -i broken
./app-deployments/by-id/e41e277e: broken symbolic link to `../2013-10-16_04-16-19.800'

[app-deployments]# tree
.
├── 2013-10-16_05-31-10.144
│   ├── build-dependencies
│   ├── dependencies
│   ├── metadata.json
│   └── repo
│       ├── 321
│       ├── config.ru
│       ├── public
│       ├── README.md
│       └── tmp
└── by-id
    ├── e41e277e -> ../2013-10-16_04-16-19.800
    └── f6c45c58 -> ../2013-10-16_05-31-10.144

Comment 1 Dan Mace 2013-10-21 21:33:28 UTC
https://github.com/openshift/li/pull/2016

Comment 2 openshift-github-bot 2013-10-21 22:58:13 UTC
Commit pushed to master at https://github.com/openshift/li

https://github.com/openshift/li/commit/2c0e1b324ff74b46e7371bb646b35c458c71478b
Bug 1019732: Make deployment upgrade steps idempotent

Comment 3 Meng Bo 2013-10-22 10:36:22 UTC
Checked on devenv_3927, the issue still can be reproduced.

Assign the bug back.

Comment 4 Dan Mace 2013-10-22 18:24:58 UTC
Meng,

I've been unable to reproduce this issue when upgrading devenv-stage_521 => devenv_3928 using mock/php/python scalable and ruby non-scalable applications.

Can you try again with the latest stage image, and if you're able to reproduce it, give me the stage/dev image names and also the specifics of the applications upgraded (cartridge type, scaling options, etc)?

Thanks!

Comment 5 Meng Bo 2013-10-23 06:48:35 UTC
Hi Dan,

I can reproduce this issue from devenv-stage_528 to devenv_3932 for all cartridges.

After migration, all the gears home dir has broken symlinks.


Take a php app as example,

[root@ip-10-180-180-11 wordpress-bmengmdev]# find . -type l|xargs file |grep broken
./app-root/dependencies:                                                 broken symbolic link to `/var/lib/openshift/52675eb9c7baf242b900035c/app-root/runtime/dependencies'
./app-root/repo:                                                         broken symbolic link to `/var/lib/openshift/52675eb9c7baf242b900035c/app-root/runtime/repo'
./app-root/build-dependencies:                                           broken symbolic link to `/var/lib/openshift/52675eb9c7baf242b900035c/app-root/runtime/build-dependencies'

Check the runtime dir under app-root,

[root@ip-10-180-180-11 runtime]# ls -al
total 16
drwxr-x---. 3 52675eb9c7baf242b900035c 52675eb9c7baf242b900035c 4096 Oct 23 02:06 .
drwxr-xr-x. 4 root                     52675eb9c7baf242b900035c 4096 Oct 23 02:05 ..
lrwxrwxrwx. 1 52675eb9c7baf242b900035c 52675eb9c7baf242b900035c    7 Oct 23 01:29 data -> ../data
drwxr-x---. 3 52675eb9c7baf242b900035c 52675eb9c7baf242b900035c 4096 Oct 23 02:05 repo.backup
-rw-r-----. 1 52675eb9c7baf242b900035c 52675eb9c7baf242b900035c    8 Oct 23 02:06 .state




Create a new app on the same instance and check the runtime dir:

[root@ip-10-180-180-11 runtime]# ls -al
total 24
drwxr-x---. 2 52676bafc7baf290a8000019 52676bafc7baf290a8000019 4096 Oct 23 02:25 .
drwxr-xr-x. 4 root                     52676bafc7baf290a8000019 4096 Oct 23 02:24 ..
lrwxrwxrwx. 1 52676bafc7baf290a8000019 52676bafc7baf290a8000019  102 Oct 23 02:24 build-dependencies -> /var/lib/openshift/52676bafc7baf290a8000019/app-deployments/2013-10-23_02-24-52.738/build-dependencies
lrwxrwxrwx. 1 52676bafc7baf290a8000019 52676bafc7baf290a8000019    7 Oct 23 02:24 data -> ../data
lrwxrwxrwx. 1 52676bafc7baf290a8000019 52676bafc7baf290a8000019   96 Oct 23 02:24 dependencies -> /var/lib/openshift/52676bafc7baf290a8000019/app-deployments/2013-10-23_02-24-52.738/dependencies
lrwxrwxrwx. 1 52676bafc7baf290a8000019 52676bafc7baf290a8000019   88 Oct 23 02:25 repo -> /var/lib/openshift/52676bafc7baf290a8000019/app-deployments/2013-10-23_02-24-52.738/repo
-rw-r-----. 1 52676bafc7baf290a8000019 52676bafc7baf290a8000019    8 Oct 23 02:25 .state

Comment 7 Dan Mace 2013-10-23 13:58:32 UTC
These directories are now physical rather than symlinks as of some redesign work which hit master last night:

https://github.com/openshift/li/pull/2025


Please re-test with devenv_3934- there shouldn't be any links at all anymore. Sorry for the back-and-forth, Meng, and thanks for your patience.

Comment 8 Meng Bo 2013-10-24 10:48:08 UTC
Checked on devenv_3939, after migration, there is no broken symlinks left.

[root@ip-10-138-22-172 spring-bmengmdev2]# find . -type l|xargs file |grep broken
[root@ip-10-138-22-172 spring-bmengmdev2]# 


And the directories are created as physical dir.

[root@ip-10-138-22-172 spring-bmengmdev2]# ls -l app-root/runtime/
total 16
drwxr-xr-x. 2 root                     root                     4096 Oct 24 06:00 build-dependencies
lrwxrwxrwx. 1 5268e390631abb84c6000059 5268e390631abb84c6000059    7 Oct 24 05:08 data -> ../data
drwxr-xr-x. 2 root                     root                     4096 Oct 24 06:00 dependencies
-rw-r--r--. 1 5268e390631abb84c6000059 5268e390631abb84c6000059    6 Oct 24 06:01 jbosseap.pid
drwxr-x---. 6 5268e390631abb84c6000059 5268e390631abb84c6000059 4096 Oct 24 05:20 repo

App can be visited after gear upgrade.

Move bug to verified.