<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
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>                                               </body>
</html>