У меня есть кластер с пятью узлами и я выполняю некоторые базовые тесты приложений с помощью 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» возобновил работу кластера. Все еще интересно, что это значит, похоже, не документировано, хотя похоже, что узел находится в состоянии только для чтения.
Поиск по источнику, я обнаружил {ошибка, заблокирован} в [bitcask_lockops: acqure] (https://github.com/basho/bitcask/blob/develop/src/bitcask_lockops.erl#L57). Возможно, Риак не закрылся, когда контейнер перезагрузился, и там были файлы с незакрепленным замком? – Joe