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" ]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |