]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
rgw: add pipe fd to set for select() in do_curl_wait()
authorCasey Bodley <cbodley@redhat.com>
Fri, 17 Jun 2016 02:51:54 +0000 (22:51 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 9 Nov 2016 15:29:21 +0000 (10:29 -0500)
commit0330031f634b9ee7b59d05276e2cb550994f85a6
tree6e9c4fc52d40a1231e9cf47b524f7f1abea009b2
parent01f786854328da96cdda4d034057c063a7e54487
rgw: add pipe fd to set for select() in do_curl_wait()

when HAVE_CURL_MULTI_WAIT is 0, the pipe fd is never added to the
readfds for select(), so FD_ISSET() is always false. this prevents us
from ever trying to read from the fd, and the pipe's buffer eventually
fills up and deadlocks callers of RGWHTTPManager::signal_thread() when
they try to write to the pipe

Fixes: http://tracker.ceph.com/issues/16368
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 75897f82abde818fde6e1625c6977dcdd639a1f0)
src/rgw/rgw_http_client.cc