[
https://jira.jboss.org/jira/browse/JGRP-837?page=com.atlassian.jira.plugi...
]
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