diff options
-rw-r--r-- | rpc/rpc-lib/src/rpc-clnt.c | 4 | ||||
-rw-r--r-- | tests/bugs/glusterd/bug-1433578-invalid-peer-glusterd-crash.t | 14 |
2 files changed, 17 insertions, 1 deletions
diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c index 9b5d5a112d9..d7a06c33d32 100644 --- a/rpc/rpc-lib/src/rpc-clnt.c +++ b/rpc/rpc-lib/src/rpc-clnt.c @@ -494,8 +494,10 @@ rpc_clnt_reconnect_cleanup (rpc_clnt_connection_t *conn) if (conn->reconnect) { ret = gf_timer_call_cancel (clnt->ctx, conn->reconnect); - if (!ret) + if (!ret) { reconnect_unref = _gf_true; + conn->cleanup_gen++; + } conn->reconnect = NULL; } diff --git a/tests/bugs/glusterd/bug-1433578-invalid-peer-glusterd-crash.t b/tests/bugs/glusterd/bug-1433578-invalid-peer-glusterd-crash.t new file mode 100644 index 00000000000..1aea8bc134d --- /dev/null +++ b/tests/bugs/glusterd/bug-1433578-invalid-peer-glusterd-crash.t @@ -0,0 +1,14 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc + +cleanup; + +## Start glusterd +TEST glusterd; +TEST pidof glusterd; + +TEST ! $CLI peer probe invalid-peer + +TEST pidof glusterd; +cleanup; |