1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00

clvmd: supress ENOENT error on testing connection

In HA cluster, we have "clvm" resource agent to manage clvmd daemon.
The agent invokes clvmd like: "clvmd -T90 -d0", which  always prints
a scaring error message:

"""
local socket: connect failed: No such file or directory
"""

When specifed with "-d" option, clvmd tries to check if an instance
of the clvmd daemon is already running through a testing connection.
The connect() will fail with this ENOENT error in such case, so supress
the error message in such case.

TODO: add missing error reaction code - since ofter log_error, program
is not supposed to continue running (log_error() is for reporting
stopping problems).

Signed-off-by: Eric Ren <zren@suse.com>
This commit is contained in:
Eric Ren 2017-10-30 20:53:20 +08:00 committed by Zdenek Kabelac
parent 014122256b
commit 14d0b0bbdd
2 changed files with 14 additions and 1 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.177 - Version 2.02.177 -
==================================== ====================================
Do not print error when clvmd cannot find running clvmd.
Prevent start of new merge of snapshot if origin is already being merged. Prevent start of new merge of snapshot if origin is already being merged.
Version 2.02.176 - 3rd November 2017 Version 2.02.176 - 3rd November 2017

View File

@ -2151,6 +2151,14 @@ static int add_to_lvmqueue(struct local_client *client, struct clvm_header *msg,
} }
/* Return 0 if we can talk to an existing clvmd */ /* Return 0 if we can talk to an existing clvmd */
/*
* FIXME:
*
* This function returns only -1 or 0, but there are
* different levels of errors, some of them should stop
* further execution of clvmd thus another state is needed
* and some error message need to be only informational.
*/
static int check_local_clvmd(void) static int check_local_clvmd(void)
{ {
int local_socket; int local_socket;
@ -2170,6 +2178,10 @@ static int check_local_clvmd(void)
if (connect(local_socket,(struct sockaddr *) &sockaddr, if (connect(local_socket,(struct sockaddr *) &sockaddr,
sizeof(sockaddr))) { sizeof(sockaddr))) {
/* connection failure is expected state */
if (errno == ENOENT)
log_sys_debug("connect", "local socket");
else
log_sys_error("connect", "local socket"); log_sys_error("connect", "local socket");
ret = -1; ret = -1;
} }