[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: examples traces from state table
Attached is a more or less random sample of a few traces from the state table exerciser, each producing a different final outcome. The main peculiarity is that the exerciser knows only of the state, and since you can nearly always resend the last message, it's liable to do so repeatedly - a real implementation of course would normally only resend if there was some uncertainty that the last message got through. I'd meant to send a version of the attached earlier, but keep improving things and not getting round to it. One of the improvements, when complete, will give an index (in html) for each state/event combination, with a link to an example showing it occurring. Peter ------------------------------------------ Peter Furniss Technical Director, Choreology Ltd email: peter.furniss@choreology.com phone: +44 20 7670 1679 direct: +44 20 7670 1783 cellphone: +44 7951 536168 13 Austin Friars, London EC2N 2JX
sup starts in I1 inf starts in i1 performing 10 trial runs blank cell receipts are errors maximum number of events before assuming stuck is 100 100% of messages are liable to be delayed Probability of inaccessible state is 5% trial 1 superior inferior I1 :B1 <--------------------------ENROL/no-rsp-req <-- i1 :b1 B1 :B1 --> SUP_STATE/active/y------------------------> b1 :b1 B1 :N1 --> REQUEST_CONFIRM N1 :N1 --> REQUEST_CONFIRM N1 :N1 --> REQUEST_CONFIRM CANCELLED <-- b1 :z REQUEST_CONFIRM--------------------> z :y1 N1 :Z <--------------------------CANCELLED REQUEST_CONFIRM--------------------> y1 :y1 Z :Z <-------------------------INF_STATE/unknown <-- y1 :z REQUEST_CONFIRM--------------------> z :y1 disruption 0 XXX y1 :y1 Z :Z <-------------------------INF_STATE/unknown <-- y1 :z Superior requested confirm, inferior never decided (=:) trial 2 superior inferior I1 :B1 <--------------------------ENROL/no-rsp-req <-- i1 :b1 B1 :N1 --> REQUEST_CONFIRM decide to send ready === b1 :e1 N1 :N1 --> REQUEST_CONFIRM REQUEST_CONFIRM--------------------> e1 :n0 REQUEST_CONFIRM--------------------> n0 :n0 remove ready information === n0 :n1 decide to confirm autonomously === n1 :n2 N1 :Z <------------------------CONFIRMED/response <-- n2 :z Superior requested confirm, inferior confirmed (=:#) trial 4 superior inferior I1 :A1 <-----------------------------ENROL/rsp-req <-- i1 :a1 A1 :A1 <------------------------INF_STATE/active/y <-- a1 :a1 A1 :A1 <------------------------INF_STATE/active/y <-- a1 :a1 A1 :A1 <------------------------INF_STATE/active/y <-- a1 :a1 A1 :A1 <------------------------INF_STATE/active/y <-- a1 :a1 A1 :B1 --> ENROLLED----------------------------------> a1 :b1 RESIGN/rsp-req <-- b1 :c1 B1 :D1 === decide to prepare RESIGN/rsp-req <-- c1 :c1 D1 :C1 <---------------------RESIGN/rsp-req C1 :C1 <---------------------RESIGN/rsp-req C1 :Z --> RESIGNED----------------------------------> c1 :z Nothing happens (:) trial 5 superior inferior I1 :A1 <-----------------------------ENROL/rsp-req <-- i1 :a1 INF_STATE/active/y <-- a1 :a1 A1 :B1 --> ENROLLED B1 :B1 <-----------------INF_STATE/active/y ENROLLED---------------------------> a1 :b1 B1 :B1 --> SUP_STATE/active/y B1 :B1 <------------------------INF_STATE/active/y <-- b1 :b1 B1 :G1 === decide to cancel SUP_STATE/active/y-----------------> b1 :b1 G1 :J2 <---------------------------------CANCELLED <-- b1 :z J2 :Z --> CANCEL------------------------------------> z :y1 Z :Z <-------------------------INF_STATE/unknown <-- y1 :z Superior cancels, inferior never decided (-:) trial 7 superior inferior ENROL/rsp-req <-- i1 :a1 INF_STATE/active/y <-- a1 :a1 INF_STATE/active/y <-- a1 :a1 I1 :A1 <----------------------ENROL/rsp-req A1 :A1 <-----------------INF_STATE/active/y A1 :A1 <-----------------INF_STATE/active/y A1 :B1 --> ENROLLED B1 :G1 === decide to cancel INF_STATE/active/y <-- a1 :a1 ENROLLED---------------------------> a1 :b1 G1 :G1 <-----------------INF_STATE/active/y decide to send ready === b1 :e1 READY <-- e1 :e1 record mixed result === e1 :m1 MIXED <-- m1 :m1 G1 :G1 <------------------------------READY G1 :M2 <------------------------------MIXED M2 :M2 <-------------------------------------MIXED <-- m1 :m1 M2 :M3 === record contradiction M3 :Z --> CONTRADICTION-----------------------------> m1 :z Superior cancels, inferior detects mix - contradiction reported (-!:!) trial 244 superior inferior ENROL/no-rsp-req <-- i1 :b1 INF_STATE/active/y <-- b1 :b1 decide to send ready/cancel === b1 :e2 I1 :B1 <-------------------ENROL/no-rsp-req B1 :D1 === decide to prepare READY/cancel <-- e2 :e2 D1 :D1 <-----------------INF_STATE/active/y D1 :E2 <-----------------------READY/cancel E2 :E2 --> PREPARE E2 :F1 === decide to confirm PREPARE----------------------------> e2 :e2 F1 :F1 --> CONFIRM-----------------------------------> e2 :f1 apply ordered confirmation === f1 :f2 F1 :F1 --> CONFIRM-----------------------------------> f2 :f2 F1 :F1 --> CONFIRM F1 :F1 --> CONFIRM CONFIRM----------------------------> f2 :f2 CONFIRM----------------------------> f2 :f2 F1 :Z0 <------------------------CONFIRMED/response <-- f2 :z Confirm ordered and applied (+:+) !:! occurred 0 times !:# occurred 0 times +!:! occurred 0 times +!:- occurred 0 times +:# occurred 0 times +:+ occurred 0 times -!:! occurred 2 times -!:# occurred 0 times -: occurred 1 times -:- occurred 0 times : occurred 4 times :- occurred 0 times =!:! occurred 0 times =!:# occurred 0 times =: occurred 2 times =:! occurred 0 times =:# occurred 1 times =:- occurred 0 times
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC