basho/riak_core — Issue #144: Map-reduce jobs fail during rolling upgrade to 1.1
Author: jtuple
Created: 2012-02-24 22:51:56+00:00
State: open

Map reduce jobs fail against a mixed 1.1/1.0 cluster or 1.1/0.14 cluster. Mixed clusters are common during rolling upgrades, where nodes are upgraded one at a time until the entire cluster is at the new version (1.1 in this case).

In addition to the jobs failing, the Riak 1.1 nodes will print several instances of the following error and then eventually shutdown:

```
2012-02-22 00:56:16.429 [error] <0.1615.0>
gen_server riak_pipe_vnode_master terminated with reason: no function clause matching
riak_core_vnode_master:handle_call(
{return_vnode,
{riak_vnode_req_v1,479555224749202520035584085735030365824602865664,
{raw,#Ref<6584.0.7263.108930>,...},...}},
{<6604.7292.421>,#Ref<6604.0.6697.250987>},
{state,undefined,undefined,riak_pipe_vnode,undefined})

2012-02-22 00:56:16.431 [error] <0.1615.0> CRASH REPORT
Process riak_pipe_vnode_master with 0 neighbours crashed with reason:
no function clause matching riak_core_vnode_master:handle_call(
{return_vnode,
{riak_vnode_req_v1,479555224749202520035584085735030365824602865664,
{raw,#Ref<6584.0.7263.108930>,...},...}},
{<6604.7292.421>,#Ref<6604.0.6697.250987>},
{state,undefined,undefined,riak_pipe_vnode,undefined})
```

The error arises from Riak 1.1 no longer implementing `riak_core_vnode_master:handle_call({return_vnode, ...)`. Yet, pre-1.1 nodes will still send messages to Riak 1.1 nodes in a mixed cluster that must be handled by this now-missing clause.