<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
<BR>Hi<BR>
&nbsp;<BR>
Can someone please respond to my request.<BR>
&nbsp;<BR>
Appreciate&nbsp; your help,<BR>
thanks in advance,<BR>Lak.<BR>
<BR>&nbsp;<BR>

<HR id=stopSpelling>
From: putcha_laks@hotmail.com<BR>To: drbd-user@lists.linbit.com<BR>Date: Thu, 4 Nov 2010 12:25:31 +0000<BR>Subject: [DRBD-user] Need help, we want invalidate if role=Secondary and uuid_compare rule==4<BR><BR>
<META name=Generator content="Microsoft SafeHTML">
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

</STYLE>
Hi,<BR>&nbsp;<BR>We would like to force resync on standby if uuid_compare rule==4 ONLY. <BR>Why?? We are seeing DRBD files corrupted consistently and each time corruption is seen rule is 4. Mail chain below has full details. <BR>Yes this is a work around because we are on DRBD-8.0.16<BR>snmpd version upgrade is a strict NO, NO.<BR>&nbsp;<BR>Whenever we observed the following two lines, we recreated metadata on secondary node and there was not file corruption seen.<BR>File Corruption: Content of other files are seen in snmpd.conf file. File corrupted is always snmpd.conf<BR>&nbsp;<BR>--&gt; uuid_compare()=0 by rule 4<BR>--&gt; No resync, but <FONT color=#ff0000><STRONG>78</STRONG> </FONT>bits in bitmap!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt;&lt;&lt; Number of bits is variable. &gt;&gt;&gt;&gt;<BR><BR>invalidate and invalidate-remote options are available under drbdadm tool, but can only be invoked externally???<BR>We would like to kick of sync only when we hit uuid_compare() by rule 4.<BR>&nbsp;<BR>Work around below needs tweaking:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INFO("Lak: 0 by Rule 4, current state = %d current role = %d ! \n",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdev-&gt;state.conn, mdev-&gt;state.role);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* !self_pri &amp;&amp; !peer_pri */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (mdev-&gt;state.conn == WFBitMapT) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncTarget);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (mdev-&gt;state.conn == WFBitMapS) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncSource);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (mdev-&gt;state.conn == SyncTarget) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncTarget);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (mdev-&gt;state.conn == SyncSource) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncSource);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (mdev-&gt;state.role == Secondary) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncTarget);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR><BR><STRONG>dmesg output on Standby Controller:</STRONG><BR>drbd0: Lak: 0 by Rule 4, current state = 9 current role = 2 ! <BR>drbd0: State change failed: Refusing to be inconsistent on both nodes<BR>drbd0:&nbsp;&nbsp; state = { cs:WFReportParams st:Secondary/Unknown ds:UpToDate/DUnknown r--- }<BR>drbd0:&nbsp; wanted = { cs:SyncTarget st:Secondary/Unknown ds:Inconsistent/DUnknown r--- }<BR><BR>LAK<BR>&nbsp;<BR>
<HR id=ecxstopSpelling>
From: putcha_laks@hotmail.com<BR>To: drbd-user@lists.linbit.com<BR>Date: Wed, 3 Nov 2010 06:50:46 +0000<BR>Subject: [DRBD-user] Issue with uuid_compare by rule 4<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}
</STYLE>
Hi,<BR><BR>DRBD -Version 8.0.16 (Code for uuid_compare by rule 4 is same in all DRBD-8.x.y versions)<BR>&nbsp;<BR>We are consistently seeing content of snmpd.conf get corrupted -- sometimes it shows iptables and sometimes it has some wierd binary data.<BR>&nbsp;<BR>In all the instances we have seen corruption, Pattern observed from dmesg<BR>uuid_compare()=0 by rule 4<BR>No resync, but <FONT color=#ff0000><STRONG>78</STRONG> </FONT>bits in bitmap!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt;&lt;&lt; Number of bits is variable. &gt;&gt;&gt;&gt;<BR>&nbsp;<BR>From drbd change log history we see that UUID_COMPARISON algorith was improved. <BR>&nbsp;<BR>* Sat Apr 07 2007 21:32:39 +0200 Philipp Reisner &lt;phil(at)linbit.com&gt;<BR>&nbsp; - drbd (8.0.2-1)<BR>&nbsp;&nbsp; * Improved the robustness of the UUID based algorithm that decides about the resync direction.<BR><BR>We would like to force sync in the rule 4 by doing the following, need your help in this regard.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* !self_pri &amp;&amp; !peer_pri */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (mdev-&gt;state.conn == WFBitMapT) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncTarget);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (mdev-&gt;state.conn == WFBitMapS) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncSource);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (mdev-&gt;state.conn == SyncTarget) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncTarget);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (mdev-&gt;state.conn == SyncSource) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drbd_start_resync(mdev, SyncSource);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR>&nbsp;<BR>Testcase we are running:<BR>Reset active board every 5 mins on a Redundant Setup.<BR>&nbsp;<BR>dmesg output:<BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: drbd_sync_handshake:<BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: self 52A974873622A8A8:0000000000000000:D1A184CD02C8EE0D:BD9572546D8C332D<BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: peer 77F8DC91C89BA0F9:52A974873622A8A8:D1A184CD02C8EE0C:BD9572546D8C332D<BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: uuid_compare()=-1 by rule 5<BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: peer( Unknown -&gt; Primary ) conn( WFReportParams -&gt; WFBitMapT ) pdsk( DUnknown -&gt; UpToDate ) <BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: conn( WFBitMapT -&gt; WFSyncUUID ) <BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: conn( WFSyncUUID -&gt; SyncTarget ) disk( UpToDate -&gt; Inconsistent ) <BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Began resync as SyncTarget (will sync 324 KB [81 bits set]).<BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Resync done (total 1 sec; paused 0 sec; 324 K/sec)<BR>11-02 22:10:23&nbsp;unknown&nbsp;kernel&nbsp;drbd0: conn( SyncTarget -&gt; Connected ) disk( Inconsistent -&gt; UpToDate ) <BR>11-02 22:10:24&nbsp;unknown&nbsp;kernel&nbsp;drbd0: local disk flush failed with status -95, disabling disk-flushes<BR>11-02 22:14:13&nbsp;unknown&nbsp;kernel&nbsp;drbd0: peer( Primary -&gt; Secondary ) <BR>11-02 22:14:14&nbsp;unknown&nbsp;kernel&nbsp;drbd0: role( Secondary -&gt; Primary ) <BR>11-02 22:14:14&nbsp;unknown&nbsp;kernel&nbsp;EXT3 FS on drbd0, internal journal<BR>11-02 22:14:14&nbsp;unknown&nbsp;kernel&nbsp;SELinux: initialized (dev drbd0, type ext3), uses xattr<BR>11-02 22:14:18&nbsp;unknown&nbsp;kernel&nbsp;drbd0: peer( Secondary -&gt; Unknown ) conn( Connected -&gt; TearDown ) pdsk( UpToDate -&gt; DUnknown ) <BR>11-02 22:14:18&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Creating new current UUID<BR>11-02 22:14:18&nbsp;unknown&nbsp;kernel&nbsp;drbd0: meta connection shut down by peer.<BR>11-02 22:14:18&nbsp;unknown&nbsp;kernel&nbsp;drbd0: asender terminated<BR>11-02 22:14:18&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Terminating asender thread<BR>11-02 22:14:19&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Connection closed<BR>11-02 22:14:19&nbsp;unknown&nbsp;kernel&nbsp;drbd0: conn( TearDown -&gt; Unconnected ) <BR>11-02 22:14:19&nbsp;unknown&nbsp;kernel&nbsp;drbd0: receiver terminated<BR>11-02 22:14:19&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Restarting receiver thread<BR>11-02 22:14:19&nbsp;unknown&nbsp;kernel&nbsp;drbd0: receiver (re)started<BR>11-02 22:14:19&nbsp;unknown&nbsp;kernel&nbsp;drbd0: conn( Unconnected -&gt; WFConnection ) <BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Handshake successful: DRBD Network Protocol version 86<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: conn( WFConnection -&gt; WFReportParams ) <BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Starting asender thread (from drbd0_receiver [1495])<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: Considerable difference in lower level device sizes: 18768s vs. 32176s<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: drbd_sync_handshake:<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: self 77F8DC91C89BA0F9:77F8DC91C89BA0F9:A1454CD240FF75F4:52A974873622A8A8<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: peer 77F8DC91C89BA0F8:0000000000000000:A1454CD240FF75F4:52A974873622A8A8<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: uuid_compare()=0 by rule 4<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: No resync, but 78 bits in bitmap!<BR>11-02 22:15:16&nbsp;unknown&nbsp;kernel&nbsp;drbd0: peer( Unknown -&gt; Secondary ) conn( WFReportParams -&gt; Connected ) pdsk( DUnknown -&gt; UpToDate ) <BR>11-02 22:19:20&nbsp;unknown&nbsp;kernel&nbsp;drbd0: role( Primary -&gt; Secondary ) <BR>11-02 22:19:20&nbsp;unknown&nbsp;kernel&nbsp;drbd0: peer( Secondary -&gt; Unknown ) conn( Connected -&gt; Disconnecting ) pdsk( UpToDate -&gt; DUnknown ) <BR>&nbsp;<BR><BR>LAK&nbsp;<BR><BR><BR><BR><BR>_______________________________________________ drbd-user mailing list drbd-user@lists.linbit.com http://lists.linbit.com/mailman/listinfo/drbd-user <BR>_______________________________________________ drbd-user mailing list drbd-user@lists.linbit.com http://lists.linbit.com/mailman/listinfo/drbd-user                                               </body>
</html>