86 lines
		
	
	
	
		
			2.5 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
	
		
			2.5 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | // 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" ] | ||
|  | 
 | ||
|  | } |