Hi Sean,

I am currently testing rsockets in connection with ceph.
I am using LD_PRELOAD and the librspreload.so to force
the application (ceph) to use rsockets instead of regular
tcp/ip sockets.

All this works pretty well - until the point where an
established connection is shut down: this seems to not
work and never finishes (unless the application is killed...).

The way ceph uses sockets is in a nonblocking mode.
When reading from a socket, it polls the socket first
with an event mask of POLLIN and POLLRDHUP.

On the return from the poll() I see that
  - POLLIN and POLLHUP are set in the returned events
    (POLLRDHUP is *not* set)
  - errno is 95 (EOPNOTSUPP)

(The POLLHUP makes me believe that in this case the other
end has shutdown the socket already.)

The EOPNOTSUPP confuses ceph quite a bit and prevents it
from shutting down it's side of the socket connection properly.


Question: is it possible that the POLLRDHUP causes the
EOPNOTSUPP to be set by librspreload::poll() or
rpoll()?

Best Regards

Andreas Bluemle




-- 
Andreas Bluemle                     mailto:andreas.blue...@itxperts.de
ITXperts GmbH                       http://www.itxperts.de
Balanstrasse 73, Geb. 08            Phone: (+49) 89 89044917
D-81541 Muenchen (Germany)          Fax:   (+49) 89 89044910

Company details: http://www.itxperts.de/imprint.htm
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to