2016-04-06 5 views
1

У меня есть кластер с пятью узлами и я выполняю некоторые базовые тесты приложений с помощью python RiakClient с использованием pbc. Код выглядит примерно так:Riak, возвращающий заблокированный статус при сохранении ключа

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

я получаю {ошибка, запертый} как RiakError обратно. Как только это начинает происходить, я также получаю много ошибок между узлами кластера, которые выглядят следующим образом:

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

Любые идеи, что это может быть и как решить? Это riak 2.0.2, думая об обновлении, но надеясь, что этого еще не нужно.

обновление: Эта проблема проявилась после докера (я упоминал это?), Контейнер, который я использовал, был перезапущен. После перезагрузки процесс riak появился, но не был в работоспособном состоянии, несмотря на то, что он был отмечен здоровым в кластере. «Перезапуск riak» возобновил работу кластера. Все еще интересно, что это значит, похоже, не документировано, хотя похоже, что узел находится в состоянии только для чтения.

+3

Поиск по источнику, я обнаружил {ошибка, заблокирован} в [bitcask_lockops: acqure] (https://github.com/basho/bitcask/blob/develop/src/bitcask_lockops.erl#L57). Возможно, Риак не закрылся, когда контейнер перезагрузился, и там были файлы с незакрепленным замком? – Joe

ответ

3

Это была проблема в сценариях выключения, узел поднимался в нечистом состоянии. Перезапуск исправил проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^