This problem occured with chef-solr-indexer and chef-client.
The ruby process randomly freezes (still in PS, activity in logs stopped).
When I run truss -p <pid> (truss = strace-like for freebsd), the execution resumes.
Here is a lot with chef-client : http://pastie.org/888829
I think this is what happens : http://ph7spot.com/musings/system-timer
Ruby 1.8 use Green threads, and green threads are not guaranteed to be scheduled. So the process freeze. When I run truss, the FreeBSD kernel changes the state of the process, and this wakes up the thread.
Currently i am forced to run truss on all chef process using cron to avoid this problem.