diff options
author | Adam Kocoloski <kocolosk@apache.org> | 2019-06-18 23:14:57 -0400 |
---|---|---|
committer | Adam Kocoloski <kocolosk@apache.org> | 2019-06-20 15:32:31 -0400 |
commit | 7dbd4d5a0cd67927e8ae030ec027db8699c5e1b5 (patch) | |
tree | d92658b9ae945bb3de8c8ec368e68ee6dadcdbd2 | |
parent | 6f95fb3c0a35059c1a2ae4970605d1034cf799d8 (diff) | |
download | couchdb-7dbd4d5a0cd67927e8ae030ec027db8699c5e1b5.tar.gz |
Further improve detection of Search system
The clouseau_rpc:version() call actually takes a few milliseconds to
complete, so instead we first check for a hidden clouseau node already
connected to our node. If we don't find it, we do the version() RPC.
-rw-r--r-- | src/dreyfus/src/clouseau_rpc.erl | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/dreyfus/src/clouseau_rpc.erl b/src/dreyfus/src/clouseau_rpc.erl index 38d6142d6..38247ff81 100644 --- a/src/dreyfus/src/clouseau_rpc.erl +++ b/src/dreyfus/src/clouseau_rpc.erl @@ -93,11 +93,18 @@ version() -> rpc({main, clouseau()}, version). connected() -> - case version() of - {'EXIT', noconnection} -> - false; - _ -> - true + HiddenNodes = erlang:nodes(hidden), + case lists:member(clouseau(), HiddenNodes) of + true -> + true; + false -> + % We might have just booted up, so let's send a test RPC + case (catch version()) of + {ok, _} -> + true; + _Err -> + false + end end. rpc(Ref, Msg) -> |