How can we go back to 1.8.1?

With the trouble we’ve experienced in moving to 2.0, we’d like to get back to 1.8.1 in our production cluster for now while we work through our issues in a test environment. My plan was to use ‘swap rebalance’ to replace 2.0 instances with 1.8.1 instances. However, when I attempt to add the 1.8.1 node, I encounter this error:

Attention - This node cannot add another node (‘ns_1@10.12.18.65’) because of cluster version compatibility mismatch. Cluster works in [2, 0] mode and node only supports [1, 8]

It appears that I need to get the cluster back into [1, 8] mode, but I haven’t found any information on how to do that.

Please advise. Thanks.

Pieced together a strategy using cluster_compat_mode erlang to tell cluster to act like [1, 8]. Here’s the call I used:

wget -O- --user= --password= --post-data=‘cluster_compat_mode:force_compat_version([1, 8])’ http://localhost:8091/diag/eval

Web UI shows ‘NOTE: need all 2.0 nodes to enable 2.0-only features’ and additional menu items are gone from UI. However, now when trying to add 1.8.1 node to the cluster I receive the ironic message:

Attention - This node cannot add another node (‘ns_1@10.243.5.139’) because of cluster version compatibility mismatch. Cluster works in [1, 8] mode and node only supports [1, 8]

Currently, all 4 2.0 instances in my cluster appear in the ‘PEND’ state even though they seem to be fully loaded into RAM. I am going to sit on this for a while, and hope that the nodes come ‘UP’ and that I am able to add the 1.8.1 node once this occurs, but I am dubious.

To others: If you try to issue the erlang call above w/ diag/eval, note that this seems to be the process for reversing it:

cluster_compat_mode:un_force_compat_version()
cluster_compat_mode:consider_switching_compat_mode()

This resets all of the servers, so there is some downtime, but when they come back up the cluster is in 2.0 mode again.

More: while I am in [1, 8] mode, my servers regularly crash with:

Server error during processing: [“web request failed”,
{path,
"/pools/default/bucketsStreaming/default"},
{type,exit},
{what,
{timeout,
{gen_event,call,
[ns_config_events,
{menelaus_event,ns_config_events},
{register_watcher,<0.19907.6>}]}}},
{trace,
[{gen_event,call1,3},
{menelaus_event,register_watcher,1},
{menelaus_web,handle_streaming,3},
{menelaus_web_buckets,
checking_bucket_access,4},
{menelaus_web,loop,3},
{mochiweb_http,headers,5},
{proc_lib,init_p_do_apply,3}]}]

Hello,

Doing a “downgrade” is not supported.
The best way if you cannot use Couchbase 2.0, is to do a backup restore.

Regards

Tug