[Drbd-dev] DRBD-8: another crash following disk write failures
Simon.Graham at stratus.com
Thu Jan 25 22:39:44 CET 2007
Just run into another crash when we get disk write failures - this is related to the other recent problems where we could try to use the activity log after the disk is detached - in this case it's an actual crash rather than a BUG() call:
Unable to handle kernel NULL pointer dereference at virtual address 000000ac
EIP is at w_io_error+0x18/0xa0 [drbd]
[<ee3b4b0e>] drbd_worker+0x2de/0x4b5 [drbd]
[<ee3c6eec>] drbd_thread_setup+0x8c/0x100 [drbd]
And the code in question is this:
int w_io_error(drbd_dev* mdev, struct drbd_work* w,int cancel)
drbd_request_t *req = (drbd_request_t*)w;
/* FIXME send a "set_out_of_sync" packet to the peer
* in the PassOn case...
* in the Detach (or Panic) case, we (try to) send
* a "we are diskless" param packet anyways, and the peer
* will then set the FullSync bit in the meta data ...
D_ASSERT(mdev->bc->dc.on_io_error != PassOn);
Oops - mdev->bc can be NULL by the time we get here...
I propose simply commenting out the assert for now (patch attached - I left the code there because of the 'FIX ME' line above -- didn't want to lose that!)
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 626 bytes
Url : http://lists.linbit.com/pipermail/drbd-dev/attachments/20070125/09ab6873/ava-1617.obj
More information about the drbd-dev