-
Notifications
You must be signed in to change notification settings - Fork 535
Description
Used Riak version is 2.0.6 EE
I think I have found one to do with the new BucketTypes, where interaction with a bucket type that has been incorrectly setup can cause a silent failure (from the client perspective)
Scenario:
- Create a cluster with multi backend:
a. Leveldb
b. Bitcask - Set the default backend to be the Bitcask storage
- Create and activate buckettype <<”leveldb_bucket”>>, with backend = <<”leveldb”>>
- Create and activate buckettype <<”wrong_storage”>>, with backend = <<”storage_not_defined”>>
- Do a http call on: …/types/leveldb_bucket/buckets/test/keys?keys=true
Response : {"keys":[]} - Do a http call on: …/types/wrong_storage/buckets?buckets=true or …/types/wrong_storage/buckets/test/keys?keys=true
Eventual response will be: {"error":"timeout"}
There does not seem to be any validation in the creation of a bucket type that protects/warns the administrator that they are about to break their cluster for anyone trying to interact with a new bucket type, there also doesn’t seem to be anything in the riak toolset (either erlang client or console) that we can use to validate that these bucket type settings are ok.
Note: I haven’t checked what would happen if you have any difference in the backend configuration on a single node (ie: 3 node cluster, 1 node with a missing/different backend name)