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