]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osdc/Objecter: do notify completion callback in fast-dispatch context
authorSage Weil <sage@redhat.com>
Fri, 19 Dec 2014 16:37:00 +0000 (08:37 -0800)
committerSage Weil <sage@redhat.com>
Fri, 19 Dec 2014 19:41:23 +0000 (11:41 -0800)
commit9b78dafd4a80ad9a557cfdf17d10fb2bff236f1a
tree81560ee2db6eefd0280c2799de9c83068f7981e4
parent3b46995c97b63c4784d21cd229e5bb01cc8cc13c
osdc/Objecter: do notify completion callback in fast-dispatch context

The notify completion has exactly one user, the librados caller which
does nothing but take a local (inner) lock and signal a Cond.  Do this
in the fast-dispatch context for simplicity.

Notably, this makes the notify completion (and timeout) trigger a
notify2() return (with ETIMEDOUT) even when the finisher queue that
normally delivers notify is busy.. for example with a notify that is
being very slow.  In our case, the unit test is doing a sleep(3) to
test timeouts but also prevented the ETIMEDOUT notification from
being delivered to the caller.  This patch resolves that.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osdc/Objecter.cc