<div dir="ltr"><span style="font-size:14px">Dear Roland,</span><div style="font-size:14px"><br></div><div style="font-size:14px">Let me send test-steps for reproduce of SyncSource/SyncSource.</div><div style="font-size:14px"><br></div><div style="font-size:14px">1. make resync situation with primary/inconsistent - secondary/uptodate.</div><div style="font-size:14px">2. copy big file during resyncing.</div><div style="font-size:14px">3. stop the secondary node network by disabling secondary node's VMware network icon during copying.</div><div style="font-size:14px">4. wait until copy finished</div><div style="font-size:14px">5. reconnect network by enabling secondary. </div><div style="font-size:14px">6. connect by --discard-my-data connect on the secondary node.</div><div style="font-size:14px">7. at this time, the each node status is SyncSource/SyncSource</div><div style="font-size:14px"><br></div><div style="font-size:14px">Thanks.</div><div class="gmail_extra"><br><div class="gmail_quote">2016-03-30 21:15 GMT+09:00 Roland Kammerer <span dir="ltr"><<a href="mailto:roland.kammerer@linbit.com" target="_blank">roland.kammerer@linbit.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Wed, Mar 30, 2016 at 06:18:50PM +0900, Jaeheon Kim wrote:<br>
> Hi,<br>
><br>
> There is some suspicious code.<br>
> Please check following code in drbd_uuid_compare.<br>
><br>
> --- code snip start ---<br>
> *rule_nr = 70;<br>
> self = drbd_bitmap_uuid(peer_device) & ~UUID_PRIMARY;<br>
> peer = peer_device->current_uuid & ~UUID_PRIMARY;<br>
> if (self == peer)<br>
> return 2;<br>
><br>
> *rule_nr = 72;<br>
> for (i = 0; i < DRBD_NODE_ID_MAX; i++) {<br>
> if (i == peer_device->node_id)<br>
> continue;<br>
> if (i == device->ldev->md.node_id)<br>
> continue;<br>
><br>
> #ifdef<br>
> _WIN32_V9_INSERT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
> /* Skip bitmap indexes which are not assigned to a peer. */<br>
> if (device->ldev->md.peers[i].bitmap_index == -1)<br>
> continue;<br>
> #endif //<br>
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>
><br>
> self = device->ldev->md.peers[i].bitmap_uuid & ~UUID_PRIMARY;<br>
> if (self == peer) {<br>
> *peer_node_id = i;<br>
> return 4;<br>
> }<br>
> }<br>
> ------ code done --------<br>
><br>
> If you don't skip undefnded bitmap_index, self uuid will get crashed data.<br>
> So, we insert this skip logic.<br>
> What do you think about it?<br>
<br>
</div></div>on a first look this seems reasonable, but I have to further think about<br>
it and discuss it with my colleagues.<br>
<br>
Would be great if you could provide the steps how to trigger that<br>
specific scenario.<br>
<br>
Regards, rck<br>
_______________________________________________<br>
drbd-dev mailing list<br>
<a href="mailto:drbd-dev@lists.linbit.com">drbd-dev@lists.linbit.com</a><br>
<a href="http://lists.linbit.com/mailman/listinfo/drbd-dev" rel="noreferrer" target="_blank">http://lists.linbit.com/mailman/listinfo/drbd-dev</a></blockquote></div>
</div></div>