What To Do when Mongrel Stops Responding to Your Requests and Ruby Doesn't Want to Tell You About It

Most of the time the Ruby stack gives you a good grasp of what is happening when you experience a problem with a RoR application: you can inspect some objects, raise an exception, launch script/console, add a log message, add a breakpoint, Google it, or… just explain the problem to your nearest coworker.

Occasionally, though, the actual problem is deep at the system level and proves to be more difficult to understand. For these abstruse issues, the standard Ruby development tricks quickly become inadequate. This is especially true during the deployment phase for applications. To alleviate these frustrating moments quickly, it is best to leverage the UNIX platform (whether you are on Mac OS X, Linux, BSD, or Solaris) and start using the raw power of tools such as DTrace, strace, gdb, lsof, netstat or XRay.

This talk introduces and demonstrates some key system diagnostic tools and techniques in the context of Ruby on Rails development. Some are already well-documented in the Addison-Wesley shortcut, Troubleshooting Ruby Processes, while others are new and lack sufficient documentation for many Rails developers.

People planning to attend this session also want to see:

Philippe Hanrigou

ThoughtWorks

Philippe Hanrigou has over ten years of experience developing enterprise software and web applications. As a software engineer and ThoughtWorks consultant, he focuses on designing enterprise software — understanding what makes a good design and implementing practices that encourage it. For the last 2 years he has enthusiastically embraced Ruby and used it to deliver large enterprise systems.

Philippe is the author of Troubleshooting Ruby Processes , an Addison-Wesley Ruby Professional Series shortcut, that introduces key system diagnostic tools in the context of Ruby development. Philippe is also the principal developer and author of Selenium Grid, a tool that transparently distribute your web testing infrastructure so that you can run Selenium tests in parallel.