1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
|
Group Membership Service (GMS) Protocol
=======================================
Hopefully these tests can be automated some time in the
future. Currently it takes too much time to write automatic tests. The
tests should be executed before releasing a new version of JGroups.
- All the tests use the JGroups/Demos/Draw program
- All tests should be run with both FD and FD_SOCK
- All test should be run with FLUSH (flush-udp.xml) and without FLUSH (udp.xml)
When *FD only* is used make sure that timeout and max_tries are relatively low. For example,
timeout="2000" and max_tries="3" are good reference values. These settings are important
for tests 9,10 and 12.
'Leave' means exit the demo program gracefully, ie. through
"Leave&Exit".
'Kill' means just kill the process id
Test 1
------
- Start A, B
- Leave B
--> B should leave and window should disappear
--> A should show 1 member
Test 2
------
- Start A, B
- Kill B
--> B should be suspected
--> A should show 1 member
(run with FD_SOCK first, then with FD only)
Test 3
------
- Test 3
- Repeatedly start B and kill B
--> A should always show the correct mbrship
Test 4
------
- Start A, B
- Leave A
--> A should leave and window should disappear
--> B should be new coordinator
--> B should show 1 member
Test 4.1
--------
- Start A, B, C
- Leave A
- Leave B
- Leave C
- Everyone should be able to leave gracefully, no error messages such as
"FD_SOCK.up(): I was suspected by 192.168.5.2:1466; ignoring the SUSPECT message"
Test 5
------
- Start A, B
- Kill A
--> A should be suspected
--> B should become new coordinator
--> B should show 1 member
Test 6
------
- Start A, B, C, D
- Kill B and C
--> A and D should show 2 members
Test 7
------
- Start A, B, C, D
- Kill A, B, C simultaneously
--> D should become new coordinator
--> D should show 1 member
Test 8
------
- Start A
- Leave A
--> A should leave in a short time (no hangs)
Test 9
------
- Start A and B concurrently
- They should form a group of 2
Test 10
-------
- Start 20 instances
- Mbrship should be 20
- Kill and leave members randomly
- Last member should show mbrship=1
Test 10a
--------
- Start 10 instances in shell #1
- Start 1 instance in shell #2
- Kill shell #1
- The view of the only surviving instance should be 1
Test 11
-------
- Start A, B
- Suspend A (CTRL-Z)
- Wait until B shows membershiop of 1, then resume A (fg)
- A and B needs to merge back into a group of 2
Pull-the-plug scenarios
=======================
- Run Draw with udp.xml, tcp.xml and tcp-nio.xml, those configurations may need to be adjusted to use
the IP addresses of the 2 nodes
- Make sure loopback=true in UDP/TCP/TCP_NIO if running on Windows
- 2 nodes, node 1 and node 2, connected to a switch
Test 12
-------
- Pull the plug on node 2
- Node 1 and node 2 should each show 1 member
- Put the plug back in
- Nodes 1 and 2 should merge into a group of 2
Test 13
-------
- Pull the plug on node 1 and node 2
- Node 1 and node 2 should each show 1 member
- Put the plugs back in
- Nodes 1 and 2 should merge into a group of 2
Test 14
-------
- Pull the plug of nodes 1 and 2 *on the switch side*
- Node 1 and node 2 should each show 1 member
- Put the plugs back in
- Nodes 1 and 2 should merge into a group of 2
Test 15
-------
- Kill the switch (pull the power)
- Node 1 and node 2 should each show 1 member
- Power the switch back up
- Nodes 1 and 2 should merge into a group of 2
Test 16
-------
- Kill the switch (or pull the plugs on all nodes)
- Power up the switch (or reinsert the plugs)
- After the merge:
- Leave the new coordinator
- The leave should immediately install a new view
(bug: http://jira.jboss.com/jira/browse/JGRP-350)
Test 17
-------
- Run tests 16-20 with 3 nodes
Test 18
-------
- Run Test 16 with DrawMultiplexer with "tcp" stack
|