Re: cosd multi-second stalls cause "wrongly marked me down"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2011-03-03 at 13:55 -0700, Yehuda Sadeh Weinraub wrote:
> On Thu, Mar 3, 2011 at 12:47 PM, Jim Schutt <jaschut@xxxxxxxxxx> wrote:
> > Has something maybe changed in signal handling recently?
> >
> > Maybe SIGPIPE used to be blocked, and sendmsg() would
> > return -EPIPE, but now it's not blocked and not handled?
> >
> > This bit in linux-2.6.git/net/core/stream.c is what made
> > me wonder, but maybe it's a red herring:
> >
> > int sk_stream_error(struct sock *sk, int flags, int err)
> > {
> >        if (err == -EPIPE)
> >                err = sock_error(sk) ? : -EPIPE;
> >        if (err == -EPIPE && !(flags & MSG_NOSIGNAL))
> >                send_sig(SIGPIPE, current, 0);
> >        return err;
> > }
> 
> It was actually just changed at
> 35c4a9ffeadfe202b247c8e23719518a874f54e6, so if you're on latest
> master then it might be it. You can try reverting that commit, or can
> try this:
> 
> index da22c7c..6f746d4 100644
> --- a/src/msg/SimpleMessenger.cc
> +++ b/src/msg/SimpleMessenger.cc
> @@ -1991,7 +1991,7 @@ int SimpleMessenger::Pipe::do_sendmsg(int sd,
> struct msghdr *msg, int len, bool
>        assert(l == len);
>      }
> 
> -    int r = ::sendmsg(sd, msg, more ? MSG_MORE : 0);
> +    int r = ::sendmsg(sd, msg, MSG_NOSIGNAL | (more ? MSG_MORE : 0));
>      if (r == 0)
>        dout(10) << "do_sendmsg hmm do_sendmsg got r==0!" << dendl;
>      if (r < 0) {
> 

That seems to have fixed this issue.  At least, before
OSDs would start dying within a few minutes of starting
up a new file system; it's been over a half hour since
I started one up with this patch, and all OSDs are still
running.

Thanks!

-- Jim

> 
> Yehuda
> >
> > -- Jim
> >
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> 


--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux