When I run the 'deploy' task, Capistrano checks out my new code,
removes the 'current' symlink and re-creates it pointing to the new
code, and then runs 'script/process/reaper', just at it should. Reaper
sends restart signals to my Mongrels. The Mongrels restart with the
old code. It's happening because somehow the Mongrels have unwound the
symlink and are tied to the revision they were launched from. They are
using the old symlink.
If I run 'deploy:stop' followed by 'deploy:cold' then I get a new set
of Mongrels up and running with the new code. (My spin script just
calls script/process/spawner....)
Solved, as I was writing this. I just changed the subject line.
Perhaps http://www.capify.org/getting-started/rails should emphasize
the importance of using a full path in script/spin. I thought a
relative path would make my app more portable. Instead it broke the
deploy task.