dev1]$ curl -X PUT -H "Content-Type: application/json" -d '{"props":{"backend":"test"}}' http://127.0.0.1:8098/riak/x124 500 Internal Server Error

Internal Server Error

The server encountered an error while processing this request:
{error,{error,badarg,
              [{erlang,list_to_existing_atom,["backend"]},
               {riak_kv_wm_raw,erlify_bucket_prop,1},
               {lists,map,2},
               {riak_kv_wm_raw,accept_bucket_body,2},
               {webmachine_resource,resource_call,3},
               {webmachine_resource,do,3},
               {webmachine_decision_core,resource_call,1},
               {webmachine_decision_core,accept_helper,0}]}}


mochiweb+webmachine web server
Config file: %% -*- tab-width: 4;erlang-indent-level: 4;indent-tabs-mode: nil -*- %% ex: ts=4 sw=4 et [ %% Riak Core config {riak_core, [ %% Default location of ringstate {ring_state_dir, "data/ring"}, %% http is a list of IP addresses and TCP ports that the Riak %% HTTP interface will bind. {http, [ {"127.0.0.1", 8091 } ]}, %% https is a list of IP addresses and TCP ports that the Riak %% HTTPS interface will bind. %{https, [{ "127.0.0.1", 8091 }]}, %% default cert and key locations for https can be overridden %% with the ssl config variable %{ssl, [ % {certfile, "etc/cert.pem"}, % {keyfile, "etc/key.pem"} % ]}, %% riak_handoff_port is the TCP port that Riak uses for %% intra-cluster data handoff. {handoff_port, 8101 }, %% To encrypt riak_core intra-cluster data handoff traffic, %% uncomment the following line and edit its path to an %% appropriate certfile and keyfile. (This example uses a %% single file with both items concatenated together.) %{handoff_ssl_options, [{certfile, "/tmp/erlserver.pem"}]}, %% Platform-specific installation paths (substituted by rebar) {platform_bin_dir, "./bin"}, {platform_data_dir, "./data"}, {platform_etc_dir, "./etc"}, {platform_lib_dir, "./lib"}, {platform_log_dir, "./log"} ]}, %% Riak KV config {riak_kv, [ %% Storage_backend specifies the Erlang module defining the storage %% mechanism that will be used on this node. {storage_backend, riak_kv_multi_backend}, {multi_backend_default, <<"bitcask">>}, {multi_backend, [ {<<"bitcask">>, riak_kv_bitcask_backend, [ {data_root, "data/bitcask"} ]}, {<<"test">>, riak_kv_bitcask_backend, [ {data_root, "data/test"} ]} % {<<"other">>, riak_kv_bitcask_backend, [ % {data_root, "data/other"} % ]} ]}, %% pb_ip is the IP address that the Riak Protocol Buffers interface %% will bind to. If this is undefined, the interface will not run. {pb_ip, "127.0.0.1" }, %% pb_port is the TCP port that the Riak Protocol Buffers interface %% will bind to {pb_port, 8081 }, %% pb_backlog is the maximum length to which the queue of pending %% connections may grow. If set, it must be an integer >= 0. %% By default the value is 5. If you anticipate a huge number of %% connections being initialised *simultaneously*, set this number %% higher. %% {pb_backlog, 64}, %% raw_name is the first part of all URLS used by the Riak raw HTTP %% interface. See riak_web.erl and raw_http_resource.erl for %% details. %{raw_name, "riak"}, %% mapred_name is URL used to submit map/reduce requests to Riak. {mapred_name, "mapred"}, %% directory used to store a transient queue for pending %% map tasks {mapred_queue_dir, "data/mr_queue" }, %% Each of the following entries control how many Javascript %% virtual machines are available for executing map, reduce, %% pre- and post-commit hook functions. {map_js_vm_count, 8 }, {reduce_js_vm_count, 6 }, {hook_js_vm_count, 2 }, %% Number of items the mapper will fetch in one request. %% Larger values can impact read/write performance for %% non-MapReduce requests. {mapper_batch_size, 5}, %% js_max_vm_mem is the maximum amount of memory, in megabytes, %% allocated to the Javascript VMs. If unset, the default is %% 8MB. {js_max_vm_mem, 8}, %% js_thread_stack is the maximum amount of thread stack, in megabyes, %% allocate to the Javascript VMs. If unset, the default is 16MB. %% NOTE: This is not the same as the C thread stack. {js_thread_stack, 16}, %% Number of objects held in the MapReduce cache. These will be %% ejected when the cache runs out of room or the bucket/key %% pair for that entry changes {map_cache_size, 10000}, %% js_source_dir should point to a directory containing Javascript %% source files which will be loaded by Riak when it initializes %% Javascript VMs. %{js_source_dir, "/tmp/js_source"}, %% riak_stat enables the use of the "riak-admin status" command to %% retrieve information the Riak node for performance and debugging needs {riak_kv_stat, true} ]}, %% Bitcask Config % {bitcask, [ % {data_root, "data/bitcask"} % ]}, %% Luwak Config {luwak, [ {enabled, false} ]}, %% Riak_err Config {riak_err, [ %% Info/error/warning reports larger than this will be considered %% too big to be formatted safely with the user-supplied format %% string. {term_max_size, 65536}, %% Limit the total size of formatted info/error/warning reports. {fmt_max_bytes, 65536} ]}, %% riak_sysmon config {riak_sysmon, [ %% To disable forwarding events of a particular type, use a %% limit of 0. {process_limit, 30}, {port_limit, 30}, %% Finding reasonable limits for a given workload is a matter %% of experimentation. {gc_ms_limit, 50}, {heap_word_limit, 10485760} ]}, %% SASL config {sasl, [ {sasl_error_logger, {file, "log/sasl-error.log"}}, {errlog_type, error}, {error_logger_mf_dir, "log/sasl"}, % Log directory {error_logger_mf_maxbytes, 10485760}, % 10 MB max file size {error_logger_mf_maxfiles, 5} % 5 files max ]} ].