Re: ORBit2 versus hanging method calls



Hi Peter,

On 11 Oct 2001, Peter Williams wrote:
>       I was wondering something about whether ORBit2 fixes a bug
> (well, more like a general problem) in ORBit1 that seems to me to be a
> really major issue.

        :-) Yes.

>       In ORBit 1, the following scenario can happen with unpleasant
> regularity:
>
>       1. Component A activates or finds Component B
>       2. A calls method Foo() on B
>       3. B crashes or hangs inside impl_Foo()
>       4. A hangs forever (inside giop_main_message_next_2 or whatever
> it is) waiting for a response from B.

        Ok - this shouldn't happen in ORBit1. So - there are several
strands of answer; in ORBit2 we used to hang if the other end died - now
we don't, we return an exception immediately the other end dies - the
correct behavior.

        Secondly; if the other end doesn't die, but goes into an infinite
loop inside a method that returns a value - yes A will hang forever
waiting for the result - again correct behavior.

        Thirdly - there is builtin ASync support in ORBit2 - a bit like
bonobo-async, but using the infastructure inside ORBit2 [ that superceeds
bonobo-async by an order of intelligence ], so - it should be possible to
make nice async methods for things that might take a long time, and invoke
a standard CORBA method asynchronously without any fooling around in the
IDL.

>       Is there anything in ORBit2 that will add a timeout or something
> similar to prevent this?

        Nope - although, in fact it wouldn't really be that hard to add
one; but it really shouldn't be neccessary.

        Regards,

                Michael.

-- 
 mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]