I understand it works like this:
By chance, the ip_hash module hashed your IP to be forwarded to the first tomcat. Now, since "tomcat 1" is down, you're being forwarded to "tomcat 2". But since nginx tries to check if "tomcat 1" is back up and your IP matched to it, it tries to connect to "tomcat 1" again on your next request. Then it registers that it's still down so you get forwarded to "tomcat 2" again... and so on.
I've read some enlightening comments by Maxim Dounin in this thread: http://forum.nginx.org/read.php?2,232912,232912.
By chance, the ip_hash module hashed your IP to be forwarded to the first tomcat. Now, since "tomcat 1" is down, you're being forwarded to "tomcat 2". But since nginx tries to check if "tomcat 1" is back up and your IP matched to it, it tries to connect to "tomcat 1" again on your next request. Then it registers that it's still down so you get forwarded to "tomcat 2" again... and so on.
I've read some enlightening comments by Maxim Dounin in this thread: http://forum.nginx.org/read.php?2,232912,232912.