[Drbd-dev] ASSERT( drbd_md_ss(device->ldev) == device->ldev->md.md_offset )

Eric Wheeler drbd-dev at lists.ewheeler.net
Sat Sep 24 00:01:11 CEST 2016


On Tue, 20 Sep 2016, Lars Ellenberg wrote:

> On Mon, Sep 19, 2016 at 12:09:12PM -0700, Eric Wheeler wrote:
> > Hello all,
> > 
> > We noticed after resizing one backing device and not the other, that the 
> > side with the larger device issued the following assertion:
> > 
> > ASSERT( drbd_md_ss(device->ldev) == device->ldev->md.md_offset ) in drbd/obj/default/drbd_main.c:3257
> >
> > We were issuing a drbdadm resize --assume-clean, but for "reasons", the 
> > far-end did not resize. Below you can see the trace of the side issuing 
> > assertions. Is this a bug that should be hanadled intelligent way?
> > 
> > What does the failed assertion indicate? It appears to assert shortly 
> > after role change to-or-from Primary-or-Secondary.
> 
> DRBD is configured for "internal" meta data,
> for some reason does some meta data IO, and realizes that someone
> resized the backing device under it, without telling it to.
> 
> Should not do further harm.

"Further" ?  Was there any harm (corruption) in the first place?

> On the box that is logging these asserts,
> do a "drbdadm check-resize".
> 
> Preferably, you should follow a backend resize immediately
> with a drbdadm check-resize (or resize).

Is `drbdadm check-resize` a node-local operation?  Does it move metadata 
to the end on both sides, or only on the side invoking check-resize?

Thanks for your help!

--
Eric Wheeler


> 
> > We are using DRBD 8.4.7-2 from git.
> > 
> > [576057.341024] block drbd8033: logical block size of local backend does not match (drbd:512, backend:4096); was this a late attach?
> > [576057.343299] block drbd8033: drbd_bm_resize called with capacity == 21854808
> > [576057.344366] block drbd8033: resync bitmap: bits=2731851 words=42686 pages=84
> > [576057.345395] block drbd8033: size = 10 GB (10927404 KB)
> > [576057.381838] block drbd8033: Writing the whole bitmap, size changed
> > [576057.382865] block drbd8033: 0 KB (0 bits) marked out-of-sync by on disk bit-map.
> > [576057.384064] block drbd8033: Resync of new storage suppressed with --assume-clean
> > [576061.509044] block drbd8033: logical block size of local backend does not match (drbd:512, backend:4096); was this a late attach?
> > [576911.559399] block drbd8033: role( Primary -> Secondary ) 
> > [576911.560677] block drbd8033: 0 KB (0 bits) marked out-of-sync by on disk bit-map.
> > [662435.411830] block drbd8033: role( Secondary -> Primary ) 
> > [663204.542351] block drbd8033: role( Primary -> Secondary ) 
> > [663204.543515] block drbd8033: 0 KB (0 bits) marked out-of-sync by on disk bit-map.
> > [748834.185982] block drbd8033: role( Secondary -> Primary ) 
> > [750155.916752] block drbd8033: role( Primary -> Secondary ) 
> > [750155.918007] block drbd8033: 0 KB (0 bits) marked out-of-sync by on disk bit-map.
> > [750155.918768] block drbd8033: ASSERT( drbd_md_ss(device->ldev) == device->ldev->md.md_offset ) in /root/rpmbuild/BUILD/drbd-8.4.7-2-e4242d818e66301920ef28733f533053e924717f/obj/default/drbd_main.c:3257
> > [835228.859747] block drbd8033: role( Secondary -> Primary ) 
> > [835228.860996] block drbd8033: ASSERT( drbd_md_ss(device->ldev) == device->ldev->md.md_offset ) in /root/rpmbuild/BUILD/drbd-8.4.7-2-e4242d818e66301920ef28733f533053e924717f/obj/default/drbd_main.c:3257
> 
> -- 
> : Lars Ellenberg
> : LINBIT | Keeping the Digital World Running
> : DRBD -- Heartbeat -- Corosync -- Pacemaker
> : R&D, Integration, Ops, Consulting, Support
> 
> DRBD® and LINBIT® are registered trademarks of LINBIT
> _______________________________________________
> drbd-dev mailing list
> drbd-dev at lists.linbit.com
> http://lists.linbit.com/mailman/listinfo/drbd-dev
> 


More information about the drbd-dev mailing list