1
votes

I have a five node riak cluster and am doing some basic application testing with a python RiakClient using pbc. Code looks something like this:

b = riakclient.bucket('test')
item = b.get('key1')
item.data = 'testdata'
item.store()

I am getting {error,locked} as a RiakError back. Once this starts to happen I also get a lot of errors between the cluster nodes that look like this:

Handoff receiver for partition 1134123.... exited abnormally ... {error,locked}

Any ideas what this might be or how to resolve? This is riak 2.0.2, thinking about updating but hoping to not have to do that yet.

update: this problem manifested itself after the docker (did I mention that?) container I was using was restarted. After restart the riak process came up but was not in a functioning state despite being marked healthy in the cluster. A 'sv restart riak' got the cluster back to working. Still wondering what this means, does not seem to be documented although it does seem to mean the node is in a read-only state.

1
searching through the source, I find {error,locked} in bitcask_lockops:acqure. Perhaps Riak didn't shut down cleanly when the container restarted and there were stale lock files? - Joe

1 Answers

3
votes

This was a problem in the shutdown scripts, node was coming up in unclean state. A restart fixed the issue.