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