Hi guys,<br>
<br>
I'm running into this hidden bug quite often while doing
failover. How critical is this bug? Can someone clarify the
FIXME comment? Like any clues to where this "hidden" bug is or
where you think it could be? Thanks.<br>
<br>
I'm doing these DRBD-0.7.14 fs failovers in OpenSSI, but OpenSSI hasn't modified drbd_fs.c<br>
<br>
Roger<br>
<br>
<br>
node3 login: drbd3: PingAck did not arrive in time.<br>
drbd3: short read expecting header on sock: r=-512<br>
drbd1: PingAck did not arrive in time.<br>
drbd1: short read expecting header on sock: r=-512<br>
drbd0: PingAck did not arrive in time.<br>
drbd0: short read expecting header on sock: r=-512<br>
Taking over master from node 1.<br>
Node 1 has gone down!!!<br>
write handler down off 150000 len 516<br>
write handler down off 40000 len 460<br>
passed the first scan in ipcname_pull_data<br>
num_objects[MSG] = 0<br>
num_objects[SEM] = 4<br>
num_objects[SHM] = 10<br>
ipcnameserver ready completed<br>
drbd0: drbd_nodedown: Node 1 has gone down!<br>
drbd0: drbd_nodedown: Signaling receiver thread.<br>
drbd0: drbd_nodedown: Node 1 has gone down!<br>
drbd1: drbd_nodedown: Node 1 has gone down!<br>
drbd1: drbd_nodedown: Signaling receiver thread.<br>
drbd0: drbd_nodedown: Node 1 has gone down!<br>
drbd1: drbd_nodedown: Node 1 has gone down!<br>
drbd3: drbd_nodedown: Node 1 has gone down!<br>
drbd3: drbd_nodedown: Signaling receiver thread.<br>
drbd0: drbd_set_state: (mdev->this_bdev->bd_contains == 0) in /openssi/drbd/drbd/drbd_fs.c:742<br>
drbd1: drbd_set_state: (mdev->this_bdev->bd_contains == 0) in /openssi/drbd/drbd/drbd_fs.c:742<br>
drbd3: drbd_set_state: (mdev->this_bdev->bd_contains == 0) in /openssi/drbd/drbd/drbd_fs.c:742<br>
drbd0: Doing CLMS nodedown callback for service 9<br>
drbd1: Doing CLMS nodedown callback for service 10<br>
drbd3: Doing CLMS nodedown callback for service 11<br>
fsck 1.35 (28-Feb-2004)<br>
<br>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)<br>
smp_rmb();<br>
if ( (newstate & Secondary) &&<br>
(test_bit(WRITER_PRESENT,&mdev->flags) ||<br>
drbd_is_mounted(minor) == MountedRW))<br>
return -EBUSY;<br>
#else <br>
ERR_IF (mdev->this_bdev->bd_contains == 0) {<br>
// FIXME this masks a bug somewhere else!<br>
mdev->this_bdev->bd_contains = mdev->this_bdev;<br>
}<br>
<br>
if ( newstate & Secondary ) {<br>