[DRBD-user] State change failed: Device is held open by someone

Peter Funk pf at artcom-gmbh.de
Sun Mar 15 23:20:56 CET 2009

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


Hello,

today I tried to find out, who is the "someone" in the following 
drbd syslog messages:
.... State change failed: Device is held open by someone
... drbd0:   state = { cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate r--- }
... drbd0:  wanted = { cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate r--- }

Unfortunately I had no success.  

Searching the archives I've noticed similar questions came up 
here on the list earlier:
http://lists.linbit.com/pipermail/drbd-user/2008-November/010706.html
http://lists.linbit.com/pipermail/drbd-user/2008-August/009954.html
http://lists.linbit.com/pipermail/drbd-user/2007-August/007338.html
(I'm not using ocfs2: The answer Lars Ellenberg gave in the
last citiation didn't apply to my situation here).

I've looked into source and found in drbd_main.c, that the message 
above is given, if( ns.role == Secondary && mdev->open_cnt )

Can you imagine a race scenario, where the reference counter ``open_cnt``
might be incremented or decremented wrong?  Especially on a dual
quad core (menaing it has 8 active CPU cores) SMP machine?

Any hints, how to find out?

Regards and many thanks in advance, Peter
-- 
Peter Funk, ✉Oldenburger Str.86, D-27777 Ganderkesee
office: ArtCom GmbH, ✉Haferwende 2, D-28357 Bremen, Germany 
tel:+49-421-20419-0 cell:+49-179-640-8878 <http://www.artcom-gmbh.de/>



More information about the drbd-user mailing list