Hi,

I am using god 0.11.0 on a Gentoo Linux for monitoring a non daemon
process and have the same symptoms as in
http://groups.google.com/group/god-rb/browse_thread/thread/41c7bc1329f57bb2#
(which I can't continue).

The :flapping condition does some logging but the process is flapping
forever.

I tracked it down a little bit and found out, that the :flapping
condition enqueues a driver operation due to the trigger call in
Flapping#process (line 74 of god/conditions/flapping.rb). This driver
operation is always in a queue with two driver events (for
:process_running and :tries) which will be handled first.
The handling of the :process_running event then leads to a clean up of
the events list and the driver operation of the :flapping condition is
never been processed.

I am not deep enough into the code to understand how it is intended to work.
Could anyone help or give a clue where to dig further?


Thanks

>tilo

-- 
You received this message because you are subscribed to the Google Groups 
"god.rb" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/god-rb?hl=en.

God.watch do |w|
  w.name = 'dcc'
  w.start = %Q(su -c "/bin/bash --login -c '/home/develop/dcc/bin/dcc-worker'" 
develop)
  w.log = "/home/develop/dcc.worker.log"
  w.behavior(:clean_pid_file)
  w.interval = 5.seconds

  w.transition(:init, {true => :up, false => :start}) do |on|
    on.condition(:process_running) do |c|
      c.running = true
    end
  end

  w.transition([:start, :restart], :up) do |on|
    on.condition(:process_running) do |c|
      c.running = true
    end
    on.condition(:tries) do |c|
      c.times = 5
      c.transition = :start
    end
  end

  w.transition(:up, :start) do |on|
    on.condition(:process_exits)
  end

  w.transition(:up, :restart) do |on|
    on.condition(:memory_usage) do |c|
      c.interval = 60
      c.above = 100.megabytes
      c.times = [3, 5]
    end
  end

  w.lifecycle do |on|
    on.condition(:flapping) do |c|
      c.to_state = [:start, :restart]
      c.times = 5
      c.within = 10.seconds
      c.transition = :unmonitored
      c.retry_in = 10.minutes
      c.retry_times = 5
      c.retry_within = 2.hours
    end
  end
end
myserver ~ # god -c /etc/god.conf -P /var/run/god.pid -D
I [2011-01-15 08:39:29]  INFO: Loading /etc/god.conf
I [2011-01-15 08:39:29]  INFO: Syslog enabled.
I [2011-01-15 08:39:29]  INFO: Using pid file directory: /var/run/god
I [2011-01-15 08:39:29]  INFO: Started on drbunix:///tmp/god.17165.sock
I [2011-01-15 08:39:29]  INFO: dcc move 'unmonitored' to 'init'
I [2011-01-15 08:39:29]  INFO: dcc moved 'unmonitored' to 'init'
I [2011-01-15 08:39:29]  INFO: dcc [trigger] process is not running 
(ProcessRunning)
I [2011-01-15 08:39:29]  INFO: dcc move 'init' to 'start'
I [2011-01-15 08:39:29]  INFO: dcc before_start: deleted pid file (CleanPidFile)
I [2011-01-15 08:39:29]  INFO: dcc start: su -c "/bin/bash --login -c 
'/home/develop/dcc/bin/dcc-worker'" develop
I [2011-01-15 08:39:29]  INFO: dcc moved 'init' to 'start'
I [2011-01-15 08:39:29]  INFO: dcc [trigger] process is running (ProcessRunning)
I [2011-01-15 08:39:29]  INFO: dcc move 'start' to 'up'
I [2011-01-15 08:39:29]  INFO: dcc registered 'proc_exit' event for pid 25839
I [2011-01-15 08:39:29]  INFO: dcc moved 'start' to 'up'
I [2011-01-15 08:39:29]  INFO: dcc [ok] memory within bounds [2324kb] 
(MemoryUsage)
I [2011-01-15 08:39:31]  INFO: dcc [trigger] process 25839 exited 
{:thread_group_id=>25839, :exit_signal=>17, :exit_code=>256, :pid=>25839} 
(ProcessExits)
I [2011-01-15 08:39:31]  INFO: dcc move 'up' to 'start'
I [2011-01-15 08:39:31]  INFO: dcc deregistered 'proc_exit' event for pid 25839
I [2011-01-15 08:39:31]  INFO: dcc before_start: deleted pid file (CleanPidFile)
I [2011-01-15 08:39:31]  INFO: dcc start: su -c "/bin/bash --login -c 
'/home/develop/dcc/bin/dcc-worker'" develop
I [2011-01-15 08:39:31]  INFO: dcc moved 'up' to 'start'
I [2011-01-15 08:39:31]  INFO: dcc [trigger] process is running (ProcessRunning)
I [2011-01-15 08:39:31]  INFO: dcc move 'start' to 'up'
I [2011-01-15 08:39:31]  INFO: dcc registered 'proc_exit' event for pid 25842
I [2011-01-15 08:39:31]  INFO: dcc moved 'start' to 'up'
I [2011-01-15 08:39:31]  INFO: dcc [ok] memory within bounds [2324kb] 
(MemoryUsage)
I [2011-01-15 08:39:32]  INFO: dcc [trigger] process 25842 exited 
{:thread_group_id=>25842, :exit_signal=>17, :exit_code=>256, :pid=>25842} 
(ProcessExits)
I [2011-01-15 08:39:32]  INFO: dcc move 'up' to 'start'
I [2011-01-15 08:39:32]  INFO: dcc deregistered 'proc_exit' event for pid 25842
I [2011-01-15 08:39:32]  INFO: dcc before_start: deleted pid file (CleanPidFile)
I [2011-01-15 08:39:32]  INFO: dcc start: su -c "/bin/bash --login -c 
'/home/develop/dcc/bin/dcc-worker'" develop
I [2011-01-15 08:39:33]  INFO: dcc moved 'up' to 'start'
I [2011-01-15 08:39:33]  INFO: dcc [trigger] process is running (ProcessRunning)
I [2011-01-15 08:39:33]  INFO: dcc move 'start' to 'up'
I [2011-01-15 08:39:33]  INFO: dcc registered 'proc_exit' event for pid 25845
I [2011-01-15 08:39:33]  INFO: dcc moved 'start' to 'up'
I [2011-01-15 08:39:33]  INFO: dcc [ok] memory within bounds [2324kb] 
(MemoryUsage)
I [2011-01-15 08:39:34]  INFO: dcc [trigger] process 25845 exited 
{:thread_group_id=>25845, :exit_signal=>17, :exit_code=>256, :pid=>25845} 
(ProcessExits)
I [2011-01-15 08:39:34]  INFO: dcc move 'up' to 'start'
I [2011-01-15 08:39:34]  INFO: dcc deregistered 'proc_exit' event for pid 25845
I [2011-01-15 08:39:34]  INFO: dcc before_start: deleted pid file (CleanPidFile)
I [2011-01-15 08:39:34]  INFO: dcc start: su -c "/bin/bash --login -c 
'/home/develop/dcc/bin/dcc-worker'" develop
I [2011-01-15 08:39:34]  INFO: dcc moved 'up' to 'start'
I [2011-01-15 08:39:34]  INFO: dcc [trigger] process is running (ProcessRunning)
I [2011-01-15 08:39:34]  INFO: dcc move 'start' to 'up'
I [2011-01-15 08:39:34]  INFO: dcc registered 'proc_exit' event for pid 25848
I [2011-01-15 08:39:34]  INFO: dcc moved 'start' to 'up'
I [2011-01-15 08:39:34]  INFO: dcc [ok] memory within bounds [2324kb] 
(MemoryUsage)
I [2011-01-15 08:39:36]  INFO: dcc [trigger] process 25848 exited 
{:thread_group_id=>25848, :exit_signal=>17, :exit_code=>256, :pid=>25848} 
(ProcessExits)
I [2011-01-15 08:39:36]  INFO: dcc move 'up' to 'start'
I [2011-01-15 08:39:36]  INFO: dcc deregistered 'proc_exit' event for pid 25848
I [2011-01-15 08:39:36]  INFO: dcc before_start: deleted pid file (CleanPidFile)
I [2011-01-15 08:39:36]  INFO: dcc start: su -c "/bin/bash --login -c 
'/home/develop/dcc/bin/dcc-worker'" develop
I [2011-01-15 08:39:36]  INFO: dcc moved 'up' to 'start'
I [2011-01-15 08:39:36]  INFO: dcc [trigger] process is running (ProcessRunning)
I [2011-01-15 08:39:36]  INFO: dcc move 'start' to 'up'
I [2011-01-15 08:39:36]  INFO: dcc registered 'proc_exit' event for pid 25851
I [2011-01-15 08:39:36]  INFO: dcc moved 'start' to 'up'
I [2011-01-15 08:39:36]  INFO: dcc [ok] memory within bounds [2320kb] 
(MemoryUsage)
I [2011-01-15 08:39:37]  INFO: dcc auto-reenable monitoring in 600 seconds
I [2011-01-15 08:39:37]  INFO: dcc [trigger] process 25851 exited 
{:thread_group_id=>25851, :exit_signal=>17, :exit_code=>256, :pid=>25851} 
(ProcessExits)
I [2011-01-15 08:39:37]  INFO: dcc move 'up' to 'start'
I [2011-01-15 08:39:37]  INFO: dcc deregistered 'proc_exit' event for pid 25851
I [2011-01-15 08:39:37]  INFO: dcc before_start: deleted pid file (CleanPidFile)
I [2011-01-15 08:39:37]  INFO: dcc start: su -c "/bin/bash --login -c 
'/home/develop/dcc/bin/dcc-worker'" develop
I [2011-01-15 08:39:37]  INFO: dcc moved 'up' to 'start'
I [2011-01-15 08:39:37]  INFO: dcc [trigger] process is running (ProcessRunning)
I [2011-01-15 08:39:37]  INFO: dcc move 'start' to 'up'
I [2011-01-15 08:39:37]  INFO: dcc registered 'proc_exit' event for pid 25854
I [2011-01-15 08:39:37]  INFO: dcc moved 'start' to 'up'
I [2011-01-15 08:39:37]  INFO: dcc [ok] memory within bounds [2324kb] 
(MemoryUsage)
…

Reply via email to