[jboss-jira] [JBoss JIRA] Commented: (JGRP-837) Add failure simulation capabilities to Simulator
Richard Achmatowicz (JIRA)
jira-events at lists.jboss.org
Wed Oct 22 11:02:21 EDT 2008
[ https://jira.jboss.org/jira/browse/JGRP-837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12434911#action_12434911 ]
Richard Achmatowicz commented on JGRP-837:
------------------------------------------
1. I'll run the testsuite with the new versions before committing. I assume this is only to be committed to the HEAD branch, right?
2. DISCARD and DELAY attempt to simulate lossy channels and traffic laden channels where the loss and delay are random over time. This makes the test case more realistic, in that real channels drop messages and delay messages in such a fashion. However, these test runs are non-deterministic and we don't have the ability to drive the protocol execution down specific paths.
Being able to specify exactly how slow a process is, or exactly which messages are dropped and when gives more control in driving the protocol into problematic states. For example, in the NAKACKRebroadcastTest, I needed to drop specific messages of the protocol (the NAKACK. messages with type XMIT_RSP) when the protocol was in a specific state (once a REBROADCAST event had been received and not before). slowProcess() with a fixed, predictable delay could be used to test what happens when a process is slow, but just not slow enough to be suspected. Or exactly when it is slow and should be suspected. So the emphasis here is on providing *deterministic* primitives which can be used to inject faults at a specific state of protocol execution, to drive execution down rarely seen paths.
This stuff is minimally related to Orchestra (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.47.6485) which uses the same approach, using a scripting language and finite state machines to drive the protocol into very specific protocol states.
3. With regard to rebroadcast, i'll move it into another issue.
> Add failure simulation capabilities to Simulator
> -------------------------------------------------
>
> Key: JGRP-837
> URL: https://jira.jboss.org/jira/browse/JGRP-837
> Project: JGroups
> Issue Type: Feature Request
> Reporter: Richard Achmatowicz
> Assignee: Richard Achmatowicz
> Priority: Minor
>
> The Simulator can be used to test protocol layers in isolation. Multiple Simulator instances can be configured so that they model a multicast group.
> In its present state, messages are transported from one Simulator instance to another by the send_thread, which moves messages from send_queue to recv_queue in a reliable fashion. Futhermore, all Simulators perform at the same speed. I'd like to use the Simulator to additionally simulate failures, in order to check the robustness of the protocols. In particular, i'd like to model:
> * dropped, reordered, corrupted messages
> * failed processors ('crash' failure)
> * network partitions
> * slow processes
> This JIRA issue will track progress on this and allow for discussion.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list