1 // vim: set sw=2 sts=2 : 1 // vim: set sw=2 sts=2 : 2 digraph { 2 digraph { 3 rankdir=BT 3 rankdir=BT 4 bgcolor=white 4 bgcolor=white 5 5 6 node [shape=plaintext] 6 node [shape=plaintext] 7 node [fontcolor=black] 7 node [fontcolor=black] 8 8 9 StandAlone [ style=filled,fillcolor=gray 9 StandAlone [ style=filled,fillcolor=gray,label=StandAlone ] 10 10 11 node [fontcolor=lightgray] 11 node [fontcolor=lightgray] 12 12 13 Unconnected [ label=Unconnected ] 13 Unconnected [ label=Unconnected ] 14 14 15 CommTrouble [ shape=record, 15 CommTrouble [ shape=record, 16 label="{communication loss|{Timeout|Broken 16 label="{communication loss|{Timeout|BrokenPipe|NetworkFailure}}" ] 17 17 18 node [fontcolor=gray] 18 node [fontcolor=gray] 19 19 20 subgraph cluster_try_connect { 20 subgraph cluster_try_connect { 21 label="try to connect, handshake" 21 label="try to connect, handshake" 22 rank=max 22 rank=max 23 WFConnection [ label=WFConnection ] 23 WFConnection [ label=WFConnection ] 24 WFReportParams [ label=WFReportParams ] 24 WFReportParams [ label=WFReportParams ] 25 } 25 } 26 26 27 TearDown [ label=TearDown ] 27 TearDown [ label=TearDown ] 28 28 29 Connected [ label=Connected,style=fille 29 Connected [ label=Connected,style=filled,fillcolor=green,fontcolor=black ] 30 30 31 node [fontcolor=lightblue] 31 node [fontcolor=lightblue] 32 32 33 StartingSyncS [ label=StartingSyncS ] 33 StartingSyncS [ label=StartingSyncS ] 34 StartingSyncT [ label=StartingSyncT ] 34 StartingSyncT [ label=StartingSyncT ] 35 35 36 subgraph cluster_bitmap_exchange { 36 subgraph cluster_bitmap_exchange { 37 node [fontcolor=red] 37 node [fontcolor=red] 38 fontcolor=red 38 fontcolor=red 39 label="new application (WRITE?) requests b 39 label="new application (WRITE?) requests blocked\lwhile bitmap is exchanged" 40 40 41 WFBitMapT [ label=WFBitMapT ] 41 WFBitMapT [ label=WFBitMapT ] 42 WFSyncUUID [ label=WFSyncUUID ] 42 WFSyncUUID [ label=WFSyncUUID ] 43 WFBitMapS [ label=WFBitMapS ] 43 WFBitMapS [ label=WFBitMapS ] 44 } 44 } 45 45 46 node [fontcolor=blue] 46 node [fontcolor=blue] 47 47 48 cluster_resync [ shape=record,label="{<any>r 48 cluster_resync [ shape=record,label="{<any>resynchronisation process running\l'concurrent' application requests allowed|{{<T>PausedSyncT\nSyncTarget}|{<S>PausedSyncS\nSyncSource}}}" ] 49 49 50 node [shape=box,fontcolor=black] 50 node [shape=box,fontcolor=black] 51 51 52 // drbdadm [label="drbdadm connect"] 52 // drbdadm [label="drbdadm connect"] 53 // handshake [label="drbd_connect()\ndrbd_do 53 // handshake [label="drbd_connect()\ndrbd_do_handshake\ndrbd_sync_handshake() etc."] 54 // comm_error [label="communication trouble" 54 // comm_error [label="communication trouble"] 55 55 56 // 56 // 57 // edges 57 // edges 58 // -------------------------------------- 58 // -------------------------------------- 59 59 60 StandAlone -> Unconnected [ label="drbdadm c 60 StandAlone -> Unconnected [ label="drbdadm connect" ] 61 Unconnected -> StandAlone [ label="drbdadm 61 Unconnected -> StandAlone [ label="drbdadm disconnect\lor serious communication trouble" ] 62 Unconnected -> WFConnection [ label="receive 62 Unconnected -> WFConnection [ label="receiver thread is started" ] 63 WFConnection -> WFReportParams [ headlabel=" 63 WFConnection -> WFReportParams [ headlabel="accept()\land/or \lconnect()\l" ] 64 64 65 WFReportParams -> StandAlone [ label="during 65 WFReportParams -> StandAlone [ label="during handshake\lpeers do not agree\labout something essential" ] 66 WFReportParams -> Connected [ label="data id 66 WFReportParams -> Connected [ label="data identical\lno sync needed",color=green,fontcolor=green ] 67 67 68 WFReportParams -> WFBitMapS 68 WFReportParams -> WFBitMapS 69 WFReportParams -> WFBitMapT 69 WFReportParams -> WFBitMapT 70 WFBitMapT -> WFSyncUUID [minlen=0.1,constr 70 WFBitMapT -> WFSyncUUID [minlen=0.1,constraint=false] 71 71 72 WFBitMapS -> cluster_resync:S 72 WFBitMapS -> cluster_resync:S 73 WFSyncUUID -> cluster_resync:T 73 WFSyncUUID -> cluster_resync:T 74 74 75 edge [color=green] 75 edge [color=green] 76 cluster_resync:any -> Connected [ label="res 76 cluster_resync:any -> Connected [ label="resnyc done",fontcolor=green ] 77 77 78 edge [color=red] 78 edge [color=red] 79 WFReportParams -> CommTrouble 79 WFReportParams -> CommTrouble 80 Connected -> CommTrouble 80 Connected -> CommTrouble 81 cluster_resync:any -> CommTrouble 81 cluster_resync:any -> CommTrouble 82 edge [color=black] 82 edge [color=black] 83 CommTrouble -> Unconnected [label="receiver 83 CommTrouble -> Unconnected [label="receiver thread is stopped" ] 84 84 85 } 85 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.