Debugging Conductor

Greg Blomquist gblomqui at redhat.com
Mon Jul 16 18:35:51 UTC 2012


I recently was trying to track down an issue that jclift was seeing in
his environment, and really wanted to see what was going on line by
line.  And really _didn't_ want to add a million print statements only
to have to figure out which of the seven log files I need to monitor to
see the output.

Enter ruby-debug.  First though, I had to be able to run the processes
in the foreground and not as services.

Preamble
0)  yum install rubygem-ruby-debug -y
1)  add "gem ruby-debug" to the default section of
/usr/share/aeolus-conductor/Gemfile.in

Run Aeolus Conductor in the foreground:
0)  Create a ~/bin directory
1)  cp /etc/init.d/aeolus-conductor ~/bin
2)  reduce the ~/bin/aeolus-conductor file to loading external vars and
running thin (in debugger mode, and don't daemonize)...something like:
http://pastebin.test.redhat.com/97293
3)  chmod 755 ~/bin/aeolus-conductor
4)  service aeolus-conductor stop
5)  aeolus-conductor

Run delayed_job in the foreground:
0)  cd /usr/share/aeolus-conductor
1)  RAILS_ENV=production rake jobs:work

Now, if you add the word "debugger" (which adds a breakpoint for rdebug)
to any ruby file under /usr/share/aeolus-conductor/app, you should hit
the breakpoint in either conductor or delayed_job.  Now you can do all
the fancy debugging that you like.

Hope that helps someone other than me.

----
 Greg



More information about the aeolus-devel mailing list