[Drbd-dev] [PATCH] Proposed fix to 8.0.x to ALWAYS scheduleafterstate processing

Graham, Simon Simon.Graham at stratus.com
Tue Dec 11 23:35:24 CET 2007

> >
> > We have found one issue with this patch -- we are now seeing
> occasional
> > messages:
> >
> > BUG! md_sync_timer expired! Worker calls drbd_md_sync()
> the "BUG!" already got remove out of that message, it is no bug,
> but only some sloppy timing of certain things on our part.
> > I _think_ this is because the meta data can be marked dirty in the
> after
> > state change processing and we now have some situations where this
> > happens after the code runs that writes the meta data -- I'm not
> > how terrible it is, but I think we should move the code that marks
> the
> > meta data dirty into _drbd_set_state() so it happens inline -- I
> don't
> > see any reason why it has to be done in the worker thread... what do
> you
> > think?
> my design proposal was to set the meta-data dirty flag _implicitly_,
> once something is changed that should be recorded on disk.  this
> "dirtying" would also schedule the timer to alert us of code pathes
> that
> take too long to actually get these changes on disk.  unfortunately we
> never got around to implementing the "implicit" part of it.
> yes, this "dirtying" should happen as early as possible.

I made the proposed change and also fixed one other small bugette in my
original patch that caused a device that went to the PausedSync state
initially to actually go ahead and sync anyway! Attached is the final
patch for the proposed changes to ALWAYS schedule after state change

-------------- next part --------------
A non-text attachment was scrubbed...
Name: drbd-sched.patch
Type: application/octet-stream
Size: 19083 bytes
Desc: drbd-sched.patch
Url : http://lists.linbit.com/pipermail/drbd-dev/attachments/20071211/9ebb1c96/drbd-sched.obj

More information about the drbd-dev mailing list