How can we go back to 1.8.1?


#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.


#2

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.


#3

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}]}]


#4

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