[mnet-devel] another fix in comms/relay (was *this* the Bermuda Triangle Bug?)

Arno Waschk hamamatsu at gmx.de
Sat Feb 14 01:53:57 GMT 2004


i guess we are on the right lane, but not arrived yet. let's try to 
finally debug that on Saturday 14th!!!
Arno

On 13 Feb 2004 15:14:45 -0500, Zooko O'Whielacronx <zooko at zooko.com> wrote:

>
> I just committed a bug fix, bumping the vernum to Mnet 
> v0.6.2.343-STABLE.  (See
> attached patch.)  Let me describe the bug and see if it sounds like it 
> could
> have been the Bermuda Triangle Bug.
>
> The bug was that when you sent a "pass this along" message to a relay 
> server,
> and the pass-this-along message failed, then the failure was being 
> treated as a
> fast-failure of the encapsulated message.
>
> Now normally a pass-this-along message would work, and so nothing would 
> happen.
> Sometimes the pass-this-along message could fast-fail, for example if 
> the relay
> server can't be reached at all.  In this case, this code would cause the
> encapsulated message to fast-fail as well, which was good.  Sometimes the
> encapsulated message would resolve (for example, you would get a 
> response to
> it), and *then* then pass-this-along message would fail (typically 
> because of
> timeout), in which case this code would attempt to abort the 
> transaction, but
> nothing would happen since the transaction already completed.  Finally,
> sometimes the pass-this-along message would fail (typically because of 
> timeout),
> and cause the transaction to be aborted, and then when the response to 
> the
> encapsulated response arrived, it would get dropped on the floor.
>
> So, this sounds a bit like the Bermuda Triangle Bug, because if the relay
> server's load increased so that its responses started timing-out, this 
> would
> cause the messages which were *responses* to the encapsulated messages to
> disappear without a trace.
>
> (Even if the response didn't go through the relay server at all!)
>
> I'll also add a diagnostic printout so that if anything like this crops 
> up again
> we get a warning printout any time a well-formed response message 
> arrives which
> we drop on the floor.
>
> Regards,
>
> Zooko
>
>
> --- CommStrat.py        2 Feb 2004 04:52:57 -0000       1.17
> +++ CommStrat.py        13 Feb 2004 19:51:05 -0000      1.18
> @@ -344,16 +344,7 @@
>          else:
>              wrappermsgbody['comm strat sequence num'] = -1
>
> -        def outcome_func_from_pass_this_along(widget, outcome, 
> failure_reason=None, self=self, msg=msg):
> -            assert idlib.equal(widget.get_counterparty_id(), 
> self._relayer_id)
> -            # debug.mojolog.write("CommStrat.Relay: Got result of `pass 
> this along'.  self._relayer_id: %s, widget: %s, outcome: %s, 
> failure_reason: %s\n", args=(self._relayer_id, widget, outcome, 
> failure_reason,), v=3, vs="commstrats")
> -            if failure_reason:
> -                fast_fail_handler(failure_reason="couldn't contact 
> relay server: %s" % hr(outcome), bad_commstrat=self)
> -            if (not failure_reason) and (outcome.get('result') != "ok") 
> and (outcome.get('result') != "success"):
> -                # Note: `ok' is for backwards compatibility, `success' 
> is preferred.
> -                fast_fail_handler(failure_reason="got failure from 
> relay server: %s" % hr(outcome), bad_commstrat=self)
> -
> -        self._mtm.initiate(self._relayer_id, 'pass this along', 
> wrappermsgbody, outcome_func=outcome_func_from_pass_this_along, 
> post_timeout_outcome_func=outcome_func_from_pass_this_along, 
> commstratseqno=self._commstratseqno, demoteonfailure=False)
> +        self._mtm.initiate(self._relayer_id, 'pass this along', 
> wrappermsgbody, commstratseqno=self._commstratseqno, 
> demoteonfailure=False)
>
>  class Crypto(CommStrat):
>      def __init__(self, pubkey, lowerstrategy, broker_id=None):
>
>
>
>
>
>
> -------------------------------------------------------
> SF.Net is sponsored by: Speed Start Your Linux Apps Now.
> Build and deploy apps & Web services for Linux with
> a free DVD software kit from IBM. Click Now!
> http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
> _______________________________________________
> mnet-devel mailing list
> mnet-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mnet-devel
>



-- 
http://www.arnowaschk.de


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel




More information about the Mnet-devel mailing list