[e-lang] Draft "Causeway: A message-oriented distributed debugger" -- please comment

Terry Stanley cocoonfx at gmail.com
Sun Feb 22 00:41:02 EST 2009


On Sat, Feb 21, 2009 at 8:14 PM, Mike Samuel <mikesamuel at gmail.com> wrote:

>
> >> I.e., if I'm investigating a message that originated in turn t1 in vat
> >> a and was handled in turn t2 in vat b, is there a view that lets me
> >> see log messages in t1 and t2 in sequence?
> >
> >
> >>
> >> Also, if I do the following,
> >>    vat A logs L1
> >>    vat A sends message M1 to vat B
> >>    vat B handles message M1
> >>    vat B logs L2
> >>    ...
> >>    vat A logs L3
> >>    vat A sends message M2 to vat B
> >>    vat B handles message M2
> >>    vat B logs L4
> >>
> >> If I'm debugging a problem with the handling of M2 but have ruled out
> >> handling of M! as a problem, I have two theories to consider
> >>  (1) something is wrong in vat A that caused it to send a bad M2 so I
> >> need to look at the messages in A between L1 and L2
> >>  (2) something is wrong in vat B that caused it to mishandle M2, so I
> >> need to look at the log messages in B between L3 and L4.
> >>
> >> Is there a view that lets me find those intervening sequences of events?
> >
> > Before answering, let me make sure I understand the question. Did you get
> L2
> > and L3 swapped in your example?
>
> Yep.
>
>
Causeway does support this with synchronized selection between the
process-order view and message-order view which is a bit tricky to describe,
but here goes...

Our example in the paper is pretty close to what you're describing here.

Let's say,
    vat A is the buyer vat; vat B is the product vat
    M1 is shipper.canDeliver(); M2 is inventory.placeOrder()

You're confident that the sending and receiving of M1 is not a problem. You
want to look at vat A messages, bracketed by L1 and L3 and vat B messages,
bracketed by L2 and L4.

The process-order view for buyer (Figure 6) shows that
    [buyer, 2] sent shipper.canDeliver()
    [buyer, 9] sent inventory.placeOrder()
The process order view shows everything that happened in the buyer vat
between these events in chronological order.

To see the particular messages as described by your problem, you would do
the following.

Click on inventory.placeOrder() in process-order view for buyer vat. The
corresponding message in the message-order view is automatically selected,
so you see the message in terms of message flow. Figure 7 shows that the
message was received by [product, 7].

Click on [product, 7] InventoryMaker.InventoryX.placeOrder in message-order
view. The corresponding message in the process-order view is automatically
selected. The product tab is selected and you see product vat events in
chronological order.

Hope this answers your question.

-- Terry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.eros-os.org/pipermail/e-lang/attachments/20090221/81471470/attachment.html 


More information about the e-lang mailing list