The Delegate.try_rebind method was intended to give a client an opportunity to retry a request in some scenarios. For example, a server uses an indirect object reference such as a corbaname or ImR-based one. The server dies and restarts. The client tries to use the old forwarded reference and gets an exception. Before handing the exception back to the application, the Delegate tries to re-resolve though the original indirect reference. This works fine. What fails is when such an indirect server throws a TRANSIENT or OBJECT_NOT_EXIST exception for its own purpose. Then try_rebind gets stuck in a loop. The solution is to track retry attempts for a given request, so a retry happens no more than once, and maybe not at all if the specific scenario described above isn't met.
Fix committed in 36399d2372b846d37507578d16698dec7570e8da
Rebase issues - SHA is now 6f7cbd2c498807214157e652785c4bd515da7471