Bug 1047440 - Fail to install dependency with jenkins for perl app
Summary: Fail to install dependency with jenkins for perl app
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: ImageStreams
Version: 2.0.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: ---
Assignee: Brenton Leanhardt
QA Contact: libra bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-31 06:56 UTC by Ma xiaoqiang
Modified: 2017-03-08 17:36 UTC (History)
4 users (show)

Fixed In Version: openshift-origin-cartridge-perl-1.16.6-1.el6op
Doc Type: Bug Fix
Doc Text:
Jenkins builds could not access the ./perl/perl5lib/lib/perl5/ directory due to missing symlinks in the managed_files.yml file of the Perl cartridge. This fix adds the required symlinks to the managed_files.yml file so that new applications that are deployed with the updated Perl cartridge are correctly built in Jenkins. Note that the ruby193-mcollective service must be restarted on node hosts after applying this fix.
Clone Of:
Environment:
Last Closed: 2014-01-28 16:39:15 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2014:0102 0 normal SHIPPED_LIVE Red Hat OpenShift Enterprise 2.0.2 bug fix and enhancement update 2014-01-28 21:38:01 UTC

Description Ma xiaoqiang 2013-12-31 06:56:40 UTC
Description of problem:
Fail to install dependency with jenkins for perl app

Version-Release number of selected component (if applicable):
puddle:[2.0.1/2013-12-16]

How reproducible:
always

Steps to Reproduce:
1.create a perl app with jenkins
#create app perlapp perl --enable-jenkins
2.add dependency to the app, and git push
#echo "Plack" >> deplist.txt
#git commit -amx && git push
3.login into the app,check the lib path
#rhc app ssh perlapp
#ls ./perl/perl5lib/lib/perl5/

Actual results:
Output:
ls: cannot access ./perl/perl5lib/lib/perl5/: No such file or directory  

Expected results:
The direct should contain "Plack"

Additional info:

Comment 2 Brenton Leanhardt 2014-01-10 23:32:57 UTC
We're missing https://github.com/openshift/origin-server/commit/a873404e93304f46a21f5a042d6d87b7044be61a was submitted upstream.  That commit added the perl5lib directory to the managed_file.yml for the perl cartridge.  That automatically symlinks those directories to the dependencies_dir.  Without these symlinks jenkins builds will fail.

I'm fairly certain a gear owner can workaround this.  I'll have to come up with the steps.

Comment 3 Brenton Leanhardt 2014-01-13 15:04:11 UTC
This is a bit of a mess.  Here are the steps that would have to be taken to manually fix a gear:

# verify the only file in this dir is .gitkeep first
rm -rf ~/perl/perl5lib
mkdir -p ~/app-root/runtime/dependencies/perl/perl5lib
ln -s ~/app-root/runtime/dependencies/perl/perl5lib ~/perl/perl5lib

At this point the app web gear will be fixed.  However any scaled or jenkins builders would not be fixed.  At this point the administration would need to upgrade to:

* Upgrade to the fixed cartridge 
* service restart ruby193-mcollective

To make things worse, if an jenkins app builder already exists it will have to be deleted manually.  They are created on-demand and destroy after a period of inactively.  They can be removed manually by browsing to the jenkins web UI at https://$jenkins-$domain.$cloud_domain/computer/.  Right click and then remove destroy the builder.  The next builder will have the updated cartridge.

It's unlikely that a scaled applications with Jenkins is affected by this simply because this bug would have prevented the application from functioning properly.  If they do exist, manually scaling down to 1 gear and then up again will solve the problem since they will be running the new cartridge code.

Comment 5 Ma xiaoqiang 2014-01-14 08:18:36 UTC
check on puddle [2.0.z/2014-01-13.1]
1.create an app with jenkins
#rhc app create perlapp perl --enable-jenkins
2.add "Plack" to deplist.txt and git push
3.ssh the app check the lib path
#52d4f0d0ea28b97646000faa]\> ls perl/perl5lib/lib/perl5/
Output:
Apache	auto  Class  CPAN  Devel  ExtUtils  File  Filesys  Hash  HTTP  inc  JSON  Module  Net  Parse  Perl  Plack  Plack.pm  Stream  Test  Try	URI  URI.pm  x86_64-linux-thread-multi

run the same steps for scalable app, the output contains "Plack".

move the bug to verified.

Comment 7 errata-xmlrpc 2014-01-28 16:39:15 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2014-0102.html


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