Red Hat Bugzilla – Bug 858326
missing requires for openshift origin broker
Last modified: 2012-12-20 10:10:44 EST
Trying to run openshift-origin-broker on F18, after fixing some issue in httpd.conf, I stumbled on this error :
[ pid=9428 thr=76566520 file=utils.rb:176 time=2012-09-18 18:13:55.241 ]: *** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Could not find gem 'cucumber (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound)) (process 9428, thread #<Thread:0x9209ff0>):
from /usr/share/gems/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve'
from /usr/share/gems/gems/bundler-1.1.4/lib/bundler/resolver.rb:161:in `start'
Ie, it seems cucumber is missing somewhere in the requires. It comes from the GemFile in openshift-oring-broker
[root@akroma broker]# pwd ;
[root@akroma broker]# grep cucumber Gemfile
[root@akroma broker]# rpm -q --requires openshift-origin-broker | grep -i cuc
Some other gem could be missing as well, I will report here if any.
Now, it ask rake-0.8.7, due to GemFile.lock who specifiy the version. I would suggest to remove this from the rpm, since this only duplicate the metadata from rpm, and make thing harder ( as seen in this case )
Next issue :
rubygem-rails is too new for the code, since that target 3.0.10, and we have rails 3.2 in Fedora 18.
I try with a versionless requires.
Next issue :
httpd/logs/error_log:[ pid=9899 thr=83269640 file=utils.rb:176 time=2012-09-18 18:33:59.133 ]: *** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Could not find gem 'rcov (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound)) (process 9899, thread #<Thread:0x9ed3010>):
There is no rcov gem in Fedora, or rather, it seems it is no longer here :
I guess you need to resurrect it, it was retired some releases ago.
Upstream has already fixed rails for 3.2, and replace rcov with simplecov. It isn't in their stable branch yet, but I think we'll need to pull it in for this.
Next one :
httpd/logs/error_log:[ pid=10108 thr=76840960 file=utils.rb:176 time=2012-09-18 18:42:13.540 ]: *** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Could not find gem 'regin (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound)) (process 10108, thread #<Thread:0x9290000>):
Seems to comes from the Gemfile, but this is not used in the code :
# grep -rl regin .
SO i guess that's safe to ignore it and remove it from the GemFile.
It seems that :
should be added as requires.
I do not understand why mocha should be pulled, since that's only for dev and test, and I think this should not be needed with default operation of the broker. SO maybe there is something missing ( like setting env to "production", by default ? )
Once everything is done, now openshift complain about :
[ pid=10460 thr=78004220 file=utils.rb:176 time=2012-09-18 18:50:19.812 ]: *** Exception Errno::EACCES in PhusionPassenger::Rack::ApplicationSpawner (Permission denied - /var/www/stickshift/broker/Gemfile.lock) (process 10460, thread #<Thread:0x94c7ff8>):
This is actually a selinux issue, as it work with permissive mode.
bundler use Gemfile.lock to start faster ( from what i gathered ), but i do not see why it fail like this if he cannot write it.
After looking a little bit more, I do not think openshift-origin-node is needed by broker, since there is no code trying to use the gem ( and the gem do not seems to be working ).
Once removed from GemFile, I stumble on :
[ pid=10720 thr=80793600 file=utils.rb:176 time=2012-09-18 18:56:52.408 ]: *** Exception NoMethodError in PhusionPassenger::Rack::ApplicationSpawner (undefined method `app' for #<Rails::Paths::Root:0xac4d808>) (process 10720, thread #<Thread:0x9a1a000>):
from /usr/share/gems/gems/openshift-origin-controller-0.14.15/lib/stickshift-controller/engine/engine.rb:6:in `<class:CloudEngine>'
from /usr/share/gems/gems/openshift-origin-controller-0.14.15/lib/stickshift-controller/engine/engine.rb:5:in `<module:StickShift>'
from /usr/share/gems/gems/openshift-origin-controller-0.14.15/lib/stickshift-controller/engine/engine.rb:4:in `<top (required)>'
from /usr/share/gems/gems/openshift-origin-controller-0.14.15/lib/openshift-origin-controller.rb:5:in `require'
from /usr/share/gems/gems/openshift-origin-controller-0.14.15/lib/openshift-origin-controller.rb:5:in `<module:Controller>'
from /usr/share/gems/gems/openshift-origin-controller-0.14.15/lib/openshift-origin-controller.rb:4:in `<module:StickShift>'
from /usr/share/gems/gems/openshift-origin-controller-0.14.15/lib/openshift-origin-controller.rb:3:in `<top (required)>'
from /usr/share/gems/gems/bundler-1.1.4/lib/bundler/runtime.rb:68:in `require'
Seems to be a issue with rails 3.2, so I will stop here and open a new bug on the controller rpms.
openshift-origin-broker-0.6.7-11.fc18 has been submitted as an update for Fedora 18.
* should fix your issue,
* was pushed to the Fedora 18 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing openshift-origin-broker-0.6.7-11.fc18'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
openshift-origin-broker-0.6.7-11.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report.