god icon indicating copy to clipboard operation
god copied to clipboard

"god check" failure

Open shadowhand opened this issue 16 years ago • 6 comments

Running "god check" results in:


using event system: netlink
starting event handler
forking off new process
forked process with pid = 3550
killing process
[fail] never received process exit event

The god log also says that events are not supported. However, "lsmod |grep cn" shows that it is loaded. It seems to me that god is incorrectly thinking that events are not supported on my system, or the documentation is incorrect.

Using Arch Linux, kernel 2.6.24-xen on Slicehost.

shadowhand avatar Oct 14 '09 15:10 shadowhand

there is some reason that the 2.6.24-xen kernels CN module just will not work with god. Can't really get good debugging information about it. However if you upgrade your kernel it will then work. Specifically on Slicehost you can upgrade your kernel through the slice manager.

notch8-old avatar Nov 26 '09 08:11 notch8-old

Using kernel 2.6.31 works. Now I have a separate issue with using Ruby 1.9.1, but will investigate that separately. Thanks!

shadowhand avatar Nov 27 '09 06:11 shadowhand

I'm having the same issue, my system configuration is the following:

Ubuntu 8.04 Kernel 2.6.24-24-server ruby 1.9.1p376 god 0.11.0

Trying to stop a process with god causes god to hang and use 100% CPU.

I'm not able to upgrade my kernel at the moment, so I guess I'll have to stick to polling for now.

rkistner avatar Jan 25 '11 13:01 rkistner

Using polling did not solve my issue. When I try to stop my watches, god almost always hangs on one of the processes, with the following being logged:

INFO: xxx stop: default lambda killer
INFO: xxx sent SIGTERM
INFO: xxx process stopped

God freezes (with 100% cpu usage) right after outputting "process stopped". When only stopping single watches, it often works without saying "process stopped". However, it always hangs when "process stopped" is in the output.

For now my workaround is to use:

w.stop = lambda { w.signal(3) }

For some reason this solves the issue.

rkistner avatar Jan 25 '11 14:01 rkistner

Having cn loaded is not enough. You have to make sure that your kernel was compiled with CONFIG_PROC_EVENTS enabled.

Sadly this is not the case for example on the current Amazon Linux Image.

EDIT: As of the March 2013 release, the Amazon Linux Image is configured to fully support the process events.

ameuret avatar Sep 12 '12 14:09 ameuret

To followup on what @ameuret said, connector support (cn) must be built-in to the kernel, and not as a module in order to enable PROC_EVENTS. Basic netlink support is still available so God will compile correctly but will not work (god check fails) since process events are missing.

Specifically, the following should be in your kernel config:

CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y

I ran into this issue on Raspbian where connector support is built as a module and so process events are unavailable.

chetan avatar Nov 26 '14 15:11 chetan