[Drbd-dev] DRBD + DM = EIO.

Ben Timby btimby at gmail.com
Thu May 27 16:14:42 CEST 2010


Lars, you rock! That fixes my problem. However...

I still get read error -5 warnings in my messages:

May 27 09:56:03 ragoon6 kernel: block drbd1: p read: error=-5
May 27 09:59:48 ragoon6 last message repeated 26 times
May 27 09:59:49 ragoon6 last message repeated 146 times

drbd_worker.c:
--
       BIO_ENDIO_FN_START;
        if (error)
                dev_warn(DEV, "p %s: error=%d\n",
                         bio_data_dir(bio) == WRITE ? "write" : "read", error);
        if (!error && !uptodate) {
                dev_warn(DEV, "p %s: setting error to -EIO\n",
                         bio_data_dir(bio) == WRITE ? "write" : "read");
                /* strange behavior of some lower level drivers...
                 * fail the request by clearing the uptodate flag,
                 * but do not return any error?! */
                error = -EIO;
        }
--

error == -5 at the beginning of this block. At least in my kernel,
there is code in dm.c that translates a missing BIO_UPTODATE flag to
EIO. Judging by the similar code and comment, this was not always the
case?

Anyway, I can live with the warnings, but you might want to silence
them with another patch...

Thanks for your reply!

On Thu, May 27, 2010 at 5:01 AM, Lars Ellenberg
<lars.ellenberg at linbit.com> wrote:
> You most likely hit
> http://git.drbd.org/?p=drbd-8.3.git;a=commitdiff;h=7fda00aacaf772253167d4ddb1eaa847862d6332;hp=3d36021c59c09e2bf37b82204b0df556de03ec0d
>
>  :(
>
> What is missing from that commit message is that a "failed"
> (intentionally not served) READA will be considered
> a real local IO error and cause DRBD to detach.
>
> Hth,


More information about the drbd-dev mailing list