<?xml version="1.0" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.jacorb.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://www.jacorb.org/bugzilla/"
          
          maintainer="jacorb@goots.org"
>

    <bug>
          <bug_id>1013</bug_id>
          
          <creation_ts>2015-07-09 18:53:56 +0000</creation_ts>
          <short_desc>Delegate.try_rebind can spin-lock a client</short_desc>
          <delta_ts>2015-07-17 02:39:51 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>JacORB</product>
          <component>ORB</component>
          <version>3.6.1</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Phil Mesnier">mesnierp</reporter>
          <assigned_to name="Phil Mesnier">mesnierp</assigned_to>
          <cc>jacorb</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>3323</commentid>
    <comment_count>0</comment_count>
    <who name="Phil Mesnier">mesnierp</who>
    <bug_when>2015-07-09 18:53:56 +0000</bug_when>
    <thetext>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&apos;t met.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3324</commentid>
    <comment_count>1</comment_count>
    <who name="Phil Mesnier">mesnierp</who>
    <bug_when>2015-07-15 10:19:16 +0000</bug_when>
    <thetext>Fix committed in 36399d2372b846d37507578d16698dec7570e8da</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3326</commentid>
    <comment_count>2</comment_count>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2015-07-17 02:39:51 +0000</bug_when>
    <thetext>Rebase issues - SHA is now 6f7cbd2c498807214157e652785c4bd515da7471</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>