[Drbd-dev] DRBD-0.7.14 drbd0: drbd_set_state: (mdev->this_bdev->bd_contains == 0) in /openssi/drbd/drbd/drbd_fs.c:742

Roger Tsang roger.tsang at gmail.com
Tue Nov 22 15:29:57 CET 2005


Hi guys,

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.

I'm doing these DRBD-0.7.14 fs failovers in OpenSSI, but OpenSSI hasn't
modified drbd_fs.c

Roger


node3 login: drbd3: PingAck did not arrive in time.
drbd3: short read expecting header on sock: r=-512
drbd1: PingAck did not arrive in time.
drbd1: short read expecting header on sock: r=-512
drbd0: PingAck did not arrive in time.
drbd0: short read expecting header on sock: r=-512
Taking over master from node 1.
Node 1 has gone down!!!
write handler down off 150000 len 516
write handler down off 40000 len 460
passed the first scan in ipcname_pull_data
num_objects[MSG] = 0
num_objects[SEM] = 4
num_objects[SHM] = 10
ipcnameserver ready completed
drbd0: drbd_nodedown: Node 1 has gone down!
drbd0: drbd_nodedown: Signaling receiver thread.
drbd0: drbd_nodedown: Node 1 has gone down!
drbd1: drbd_nodedown: Node 1 has gone down!
drbd1: drbd_nodedown: Signaling receiver thread.
drbd0: drbd_nodedown: Node 1 has gone down!
drbd1: drbd_nodedown: Node 1 has gone down!
drbd3: drbd_nodedown: Node 1 has gone down!
drbd3: drbd_nodedown: Signaling receiver thread.
drbd0: drbd_set_state: (mdev->this_bdev->bd_contains == 0) in
/openssi/drbd/drbd/drbd_fs.c:742
drbd1: drbd_set_state: (mdev->this_bdev->bd_contains == 0) in
/openssi/drbd/drbd/drbd_fs.c:742
drbd3: drbd_set_state: (mdev->this_bdev->bd_contains == 0) in
/openssi/drbd/drbd/drbd_fs.c:742
drbd0: Doing CLMS nodedown callback for service 9
drbd1: Doing CLMS nodedown callback for service 10
drbd3: Doing CLMS nodedown callback for service 11
fsck 1.35 (28-Feb-2004)

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
smp_rmb();
if ( (newstate & Secondary) &&
(test_bit(WRITER_PRESENT,&mdev->flags) ||
drbd_is_mounted(minor) == MountedRW))
return -EBUSY;
#else
ERR_IF (mdev->this_bdev->bd_contains == 0) {
// FIXME this masks a bug somewhere else!
mdev->this_bdev->bd_contains = mdev->this_bdev;
}

if ( newstate & Secondary ) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.linbit.com/pipermail/drbd-dev/attachments/20051122/edfe47c5/attachment.htm


More information about the drbd-dev mailing list