All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars Ellenberg <lars.ellenberg@linbit.com>
To: drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] ASSERT( drbd_md_ss(device->ldev) == device->ldev->md.md_offset )
Date: Mon, 26 Sep 2016 11:46:45 +0200	[thread overview]
Message-ID: <20160926094645.GZ3302@soda.linbit> (raw)
In-Reply-To: <alpine.LRH.2.11.1609231457310.29933@mail.ewheeler.net>

On Fri, Sep 23, 2016 at 03:01:11PM -0700, Eric Wheeler wrote:
> 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?

Spamming your logs ;)

> > 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?

Depends on whether or not you have a user set size limit configured.

"check-resize" tells DRBD to check for possible backend resize,
and to move its meta data to where it would expect it
if it would attach now.

After the meta data was moved,
we send our new backend size, current exposed size,
and user capped size if any, to the peer.
Which will take the hint and itself double-check
if it's backend has been resized,
if so, do the same (see above).

Also, whenever we receive such size tuples, we check if it would allow
us to agree on a new size, and if so, do it right there.

-- 
: 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

      reply	other threads:[~2016-09-26  9:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-19 19:09 [Drbd-dev] ASSERT( drbd_md_ss(device->ldev) == device->ldev->md.md_offset ) Eric Wheeler
2016-09-20  7:57 ` Lars Ellenberg
2016-09-23 22:01   ` Eric Wheeler
2016-09-26  9:46     ` Lars Ellenberg [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160926094645.GZ3302@soda.linbit \
    --to=lars.ellenberg@linbit.com \
    --cc=drbd-dev@lists.linbit.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.