Read only archive ; use https://github.com/JacORB/JacORB/issues for new issues
Bug 1013 - Delegate.try_rebind can spin-lock a client
Summary: Delegate.try_rebind can spin-lock a client
Status: RESOLVED FIXED
Alias: None
Product: JacORB
Classification: Unclassified
Component: ORB (show other bugs)
Version: 3.6.1
Hardware: PC All
: P5 enhancement
Assignee: Phil Mesnier
URL:
Depends on:
Blocks:
 
Reported: 2015-07-09 18:53 CEST by Phil Mesnier
Modified: 2015-07-17 02:39 CEST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Phil Mesnier 2015-07-09 18:53:56 CEST
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.
Comment 1 Phil Mesnier 2015-07-15 10:19:16 CEST
Fix committed in 36399d2372b846d37507578d16698dec7570e8da
Comment 2 Nick Cross 2015-07-17 02:39:51 CEST
Rebase issues - SHA is now 6f7cbd2c498807214157e652785c4bd515da7471