I have god
installed on at least a dozen (or more) servers running CentOS 5.5 in both i386 and x86_64 flavors that work perfectly. I just setup two new CentOS 5.5 x86_64 servers and installed God, but I'm getting an event system error:
$ tail /var/log/god.log
E [2011-04-22 12:33:17] ERROR: Condition 'God::Conditions::ProcessExits'
requires an event system but none has been loaded
$ god check
using event system: none
[fail] event system did not load
$ uname -a
Linux server2.example.com 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
I can't find any cn
or netlink
kernel module on any of my CentOS servers. Yet I have other servers that work fine:
$ god check
using event system: netlink
starting event handler
forking off new process
forked process with pid = 17559
killing process
[ok] process exit event received
$ uname -a
Linux server1.example.com 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
All servers run ruby v1.8.6-399:
# ruby -v
ruby 1.8.6 (2010-02-05 patchlevel 399) [x86_64-linux]
Ruby comes from the ELFF repo:
# rpm -qi ruby
Name : ruby Relocations: (not relocatable)
Version : 1.8.6.399 Vendor: Bravenet ELFF <[email protected]>
Release : 2.el5 Build Date: Fri Apr 16 18:53:48 2010
Install Date: Thu Mar 24 11:23:48 2011 Build Host: el-build.local
Group : Development/Languages Source RPM: ruby-1.8.6.399-2.el5.src.rpm
Size : 1738695 License: Ruby or GPLv2
Signature : DSA/SHA1, Fri Apr 16 19:07:49 2010, Key ID 551751dfe8b071d6
Packager : Bravenet ELFF <[email protected]>
I did a little digging and can see the exception getting thrown when God tries to load the Netlink event handler:
no such file to load -- netlink_handler_ext
What could possibly be different between my servers? Am I missing something simple?
netlink_handler_ext is a ruby native extension that is part of God. It looks like God can not load this native extensions either because it was never compiled and the gem was never installed correctly or it's not been added to it's load path.
Use "gem env" to checkout your gem environment, you should be able to find where the gem is installed and manually inspect if the native extension is present on not.