Re: 10.2.4 Jewel released -- IMPORTANT

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

 



Hi,

> It triggers a bug in SimpleMessenger that causes threads for broken connections to spin, eating CPU.

#0  0x00007ff431d0c8cf in __libc_recv (fd=190, buf=0x7ff3b3c23000,
n=4096, flags=64) at ../sysdeps/unix/sysv/linux/x86_64/recv.c:28
#1  0x0000559d723e46f6 in Pipe::do_recv(char*, unsigned long, int) ()
#2  0x0000559d723e4a57 in Pipe::buffered_recv(char*, unsigned long, int) ()
#3  0x0000559d723e4b53 in Pipe::tcp_read_nonblocking(char*, unsigned int) ()
#4  0x0000559d723e4e0d in Pipe::tcp_read(char*, unsigned int) ()
#5  0x0000559d723f2577 in Pipe::reader() ()
#6  0x0000559d723fc51d in Pipe::Reader::entry() ()
#7  0x00007ff431d0370a in start_thread (arg=0x7ff3c3afc700) at
pthread_create.c:333
#8  0x00007ff42fd7c82d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:109

https://github.com/ceph/ceph/blob/jewel/src/msg/simple/Pipe.cc#L2522-L2525

Under Linux, select/poll/epoll may report a socket file descriptor as
"ready for reading",
while nevertheless a subsequent read blocks, or returns an error
(EAGAIN) in non-blocking mode.
Pipe::do_recv() should stop on EAGAIN (at least when using nonblocking
IO) instead of retrying.

Best regards,
      Alexey
--
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