]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | commit c461ee19ecbc0c5c330aca20f7392c9a00730367 |
2 | Author: Jenkins Build Slave User <ceph-release-team@redhat.com> | |
3 | Date: Fri Dec 9 20:08:24 2016 +0000 | |
4 | ||
5 | 10.2.5 | |
6 | ||
7 | commit 2c7d2b99d3be6f23188af4bf95f2d6f4a4fb516a | |
8 | Merge: 9411351 f7abffe | |
9 | Author: Samuel Just <sjust@redhat.com> | |
10 | Date: Thu Dec 8 07:55:27 2016 -0800 | |
11 | ||
12 | Merge pull request #12376 from liewegas/wip-msgr-eagain-loop-jewel | |
13 | ||
14 | msg/simple/Pipe: avoid returning 0 on poll timeout | |
15 | ||
16 | Reviewed-by: Greg Farnum <gfarnum@redhat.com> | |
17 | ||
18 | commit f7abffec751e454d119df273dc6e49e5f7106078 | |
19 | Author: Sage Weil <sage@redhat.com> | |
20 | Date: Wed Dec 7 18:25:55 2016 -0600 | |
21 | ||
22 | msg/simple/Pipe: avoid returning 0 on poll timeout | |
23 | ||
24 | If poll times out it will return 0 (no data to read on socket). In | |
25 | 165e5abdbf6311974d4001e43982b83d06f9e0cc we changed tcp_read_wait from | |
26 | returning -1 to returning -errno, which means we return 0 instead of -1 | |
27 | in this case. | |
28 | ||
29 | This makes tcp_read() get into an infinite loop by repeatedly trying to | |
30 | read from the socket and getting EAGAIN. | |
31 | ||
32 | Fix by explicitly checking for a 0 return from poll(2) and returning | |
33 | EAGAIN in that case. | |
34 | ||
35 | Fixes: http://tracker.ceph.com/issues/18184 | |
36 | Signed-off-by: Sage Weil <sage@redhat.com> | |
37 | (cherry picked from commit 6c3d015c6854a12cda40673848813d968ff6afae) |