Re: Draft "Causeway: A message-oriented distributed debugger" -- please comment
Terry Stanley <[email protected]>
| Newsgroups | gmane.comp.lang.e.general |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Feb 21, 2009 at 8:14 PM, Mike Samuel <[email protected]> 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 _______________________________________________ e-lang mailing list [email protected] http://www.eros-os.org/mailman/listinfo/e-lang