Based on kernel version 6.9
. Page generated on 2024-05-14 10:02 EST
.
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 | // vim: set sw=2 sts=2 : digraph { rankdir=BT bgcolor=white node [shape=plaintext] node [fontcolor=black] StandAlone [ style=filled,fillcolor=gray,label=StandAlone ] node [fontcolor=lightgray] Unconnected [ label=Unconnected ] CommTrouble [ shape=record, label="{communication loss|{Timeout|BrokenPipe|NetworkFailure}}" ] node [fontcolor=gray] subgraph cluster_try_connect { label="try to connect, handshake" rank=max WFConnection [ label=WFConnection ] WFReportParams [ label=WFReportParams ] } TearDown [ label=TearDown ] Connected [ label=Connected,style=filled,fillcolor=green,fontcolor=black ] node [fontcolor=lightblue] StartingSyncS [ label=StartingSyncS ] StartingSyncT [ label=StartingSyncT ] subgraph cluster_bitmap_exchange { node [fontcolor=red] fontcolor=red label="new application (WRITE?) requests blocked\lwhile bitmap is exchanged" WFBitMapT [ label=WFBitMapT ] WFSyncUUID [ label=WFSyncUUID ] WFBitMapS [ label=WFBitMapS ] } node [fontcolor=blue] cluster_resync [ shape=record,label="{<any>resynchronisation process running\l'concurrent' application requests allowed|{{<T>PausedSyncT\nSyncTarget}|{<S>PausedSyncS\nSyncSource}}}" ] node [shape=box,fontcolor=black] // drbdadm [label="drbdadm connect"] // handshake [label="drbd_connect()\ndrbd_do_handshake\ndrbd_sync_handshake() etc."] // comm_error [label="communication trouble"] // // edges // -------------------------------------- StandAlone -> Unconnected [ label="drbdadm connect" ] Unconnected -> StandAlone [ label="drbdadm disconnect\lor serious communication trouble" ] Unconnected -> WFConnection [ label="receiver thread is started" ] WFConnection -> WFReportParams [ headlabel="accept()\land/or \lconnect()\l" ] WFReportParams -> StandAlone [ label="during handshake\lpeers do not agree\labout something essential" ] WFReportParams -> Connected [ label="data identical\lno sync needed",color=green,fontcolor=green ] WFReportParams -> WFBitMapS WFReportParams -> WFBitMapT WFBitMapT -> WFSyncUUID [minlen=0.1,constraint=false] WFBitMapS -> cluster_resync:S WFSyncUUID -> cluster_resync:T edge [color=green] cluster_resync:any -> Connected [ label="resnyc done",fontcolor=green ] edge [color=red] WFReportParams -> CommTrouble Connected -> CommTrouble cluster_resync:any -> CommTrouble edge [color=black] CommTrouble -> Unconnected [label="receiver thread is stopped" ] } |