cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] [DLM PATCH 0/6] Misc DLM Improvements Regarding Socket Errors
@ 2016-02-10 18:55 Bob Peterson
  2016-02-10 18:55 ` [Cluster-devel] [DLM PATCH 1/6] DLM: Don't create kernel socket until we have valid node address Bob Peterson
                   ` (7 more replies)
  0 siblings, 8 replies; 22+ messages in thread
From: Bob Peterson @ 2016-02-10 18:55 UTC (permalink / raw)
  To: cluster-devel.redhat.com

I've been doing a bunch of recovery testing with DLM and discovered some
issues. This collection of 6 patches addresses those issues. Some of them
are of my own making, introduced by the recent patches that made DLM
print socket connection errors, and recovery from those errors.

The first patch changes the TCP "connect to sock" function to more closely
match the SCTP version of the function. The idea is to not create a kernel
socket until we have a valid node address, like it does in the SCTP path.

The second patch removes a "return" from lowcomms_error_report that should
not be there. The return was causing it to bypass calling the original
error report code, thus skipping an important part in the reporting.

The third patch changes function tcp_create_listen_sock so that its
error path is consistent. Only one of its error paths was setting
con->sock to NULL, but it should be done in both cases.

The fourth patch eliminates a useless goto, to make the code more clear.

The fifth patch adds a layer of locking by way of the sk->sk_callback_lock
which is needed to prevent multiple send/receive sockets from
interfering with one another when reporting the socket errors and
subsequent recovery. This makes it similar to how sunrpc handles errors.

The sixth and final patch makes the socket error code save and restore
all four callbacks, whereas before we were only saving and restoring the
error report callback.

Bob Peterson (6):
  DLM: Don't create kernel socket until we have valid node address
  DLM: Call original error report when socket is NULL
  DLM: Make consistent error path through tcp_create_listen_sock
  DLM: Eliminate useless goto
  DLM: Add locking to protect save callback assignments
  DLM: save / restore all socket callbacks

 fs/dlm/lowcomms.c | 103 ++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 77 insertions(+), 26 deletions(-)

-- 
2.5.0



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2016-02-15 21:24 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-10 18:55 [Cluster-devel] [DLM PATCH 0/6] Misc DLM Improvements Regarding Socket Errors Bob Peterson
2016-02-10 18:55 ` [Cluster-devel] [DLM PATCH 1/6] DLM: Don't create kernel socket until we have valid node address Bob Peterson
2016-02-10 18:55 ` [Cluster-devel] [DLM PATCH 2/6] DLM: Call original error report when socket is NULL Bob Peterson
2016-02-11 16:43   ` Andreas Gruenbacher
2016-02-10 18:55 ` [Cluster-devel] [DLM PATCH 3/6] DLM: Make consistent error path through tcp_create_listen_sock Bob Peterson
2016-02-11 16:52   ` Andreas Gruenbacher
2016-02-11 17:59     ` Bob Peterson
2016-02-11 21:09       ` [Cluster-devel] [DLM PATCH 3/6] DLM: Make consistent error path Andreas Gruenbacher
2016-02-10 18:55 ` [Cluster-devel] [DLM PATCH 4/6] DLM: Eliminate useless goto Bob Peterson
2016-02-11 16:53   ` Andreas Gruenbacher
2016-02-10 18:55 ` [Cluster-devel] [DLM PATCH 5/6] DLM: Add locking to protect save callback assignments Bob Peterson
2016-02-11 17:04   ` Andreas Gruenbacher
2016-02-10 18:55 ` [Cluster-devel] [DLM PATCH 6/6] DLM: save / restore all socket callbacks Bob Peterson
2016-02-11 15:31   ` Steven Whitehouse
2016-02-11 16:43     ` [Cluster-devel] [DLM PATCH 6/6][try #2] " Bob Peterson
2016-02-11 17:10       ` Andreas Gruenbacher
2016-02-11 17:05 ` [Cluster-devel] [DLM PATCH 0/6] Misc DLM Improvements Regarding Socket Errors Andreas Gruenbacher
2016-02-11 17:22 ` David Teigland
2016-02-11 18:39   ` Bob Peterson
2016-02-11 18:59     ` David Teigland
2016-02-15 21:16     ` Bob Peterson
2016-02-15 21:24       ` David Teigland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).