Description
While doing some testing I hit this failure
[ns_server:debug,2024-03-19T15:40:10.349-07:00,n_0@127.0.0.1:chronicle_kv_log<0.485.0>:chronicle_kv_log:handle_info:42]delete (key: {bucket,"stevew",collections}, rev: {<<"8f51406d50ca4889347c31c15f0bdb60">>,
|
13293})
|
[ns_server:debug,2024-03-19T15:40:10.349-07:00,n_0@127.0.0.1:<0.236849.0>:ns_server_stats:maybe_delete_stat:426]Deleting <<"memcached_e2e_call_time">> for "stevew" from ets table
|
[ns_server:error,2024-03-19T15:40:10.349-07:00,n_0@127.0.0.1:<0.288410.0>:menelaus_util:reply_server_error_before_close:223]Server error during processing: ["web request failed",
|
{path,"/pools/default/buckets"},
|
{method,'GET'},
|
{type,error},
|
{what,{badmatch,not_present}},
|
{trace,
|
[{menelaus_web_buckets,
|
'-add_couch_api_base/5-fun-0-',5,
|
[{file,
|
"/Users/steve.watanabe/morpheus/ns_server/apps/ns_server/src/menelaus_web_buckets.erl"},
|
{line,145}]},
|
{lists,foldl,3,
|
[{file,"lists.erl"},{line,1594}]},
|
{menelaus_web_buckets,
|
add_couch_api_base_loop,8,
|
[{file,
|
"/Users/steve.watanabe/morpheus/ns_server/apps/ns_server/src/menelaus_web_buckets.erl"},
|
{line,124}]},
|
{menelaus_web_buckets,build_bucket_info,4,
|
[{file,
|
"/Users/steve.watanabe/morpheus/ns_server/apps/ns_server/src/menelaus_web_buckets.erl"},
|
{line,257}]},
|
{menelaus_web_buckets,
|
'-build_buckets_info/4-lc$^0/1-0-',4,
|
[{file,
|
"/Users/steve.watanabe/morpheus/ns_server/apps/ns_server/src/menelaus_web_buckets.erl"},
|
{line,240}]},
|
{menelaus_web_buckets,
|
'-build_buckets_info/4-lc$^0/1-0-',4,
|
[{file,
|
"/Users/steve.watanabe/morpheus/ns_server/apps/ns_server/src/menelaus_web_buckets.erl"},
|
{line,241}]},
|
{menelaus_web_buckets,handle_bucket_list,
|
1,
|
[{file,
|
"/Users/steve.watanabe/morpheus/ns_server/apps/ns_server/src/menelaus_web_buckets.erl"},
|
{line,92}]}, {request_tracker,request,2,
|
[{file,
|
"/Users/steve.watanabe/morpheus/ns_server/apps/ns_server/src/request_tracker.erl"},
|
{line,40}]}]}]
|
|
The cause is a race when getting info for a bucket while it is being deleted. This code should not call ns_bucket:get_bucket()
add_couch_api_base(BucketName, BucketUUID, KV, Node, LocalAddr) ->
|
%% Must completely remove these, as they are used as a signal to the SDK's
|
%% regarding whether or not we support views on this couchbase cluster.
|
NodesKeysList = ?COUCHDB_ENABLED([{Node, couchApiBase},
|
{{ssl, Node}, couchApiBaseHTTPS}], []),
|
lists:foldl(fun({N, Key}, KVAcc) ->
|
case capi_utils:capi_bucket_url_bin(N, BucketName,
|
BucketUUID, LocalAddr) of
|
undefined ->
|
KVAcc;
|
Url ->
|
{ok, BCfg} = ns_bucket:get_bucket(BucketName),
|
case ns_bucket:bucket_type(BCfg) of
|