Типичные проблемы | Tcs

Версия:

0.x
Руководство администратора Типичные проблемы

Типичные проблемы

Ошибки класса panic

Пример ошибки в журнале:

fatal runtime error: failed to initiate panic, error 5

Если возникают ошибки класса panic, то нужно перезапустить экземпляр.

Если ошибки не проходят, то нужно очистить экземпляр и перезапустить его.

Ошибки валидации при вставке и обновлении данных

Примеры ошибок в журнале:

# вставка с неправильным типом
value "foo" is not of type: Int32

# вставка поля, которого нет
cant find field foo in fields index

# обновление несуществующего поля
error: cant find field foo in fields index

# обновление на неправильный тип данных
error: value "foo" is not of type: Int32

Ошибки при аварийном переключении мастер-экземпляров Storage

Примеры ошибок в журнале:

couldn't apply the request
error at request: ...
can't initialize storage: Duplicate key exists in unique index "pk" in space "attributes" with old tuple - ...

Экземпляры Storage в TCS обычно разбиты по наборам реплик, где в каждом наборе определен свой мастер-экземпляр.

При аварийном переключении мастер-экземпляра может возникнуть ситуация, когда старый мастер-экземпляр становится недоступен, а новый мастер-экземпляр начинает работу, не дождавшись всех записей со старого мастер-экземпляра. Если после такого переключения старый мастер-экземпляр снова подключается к набору реплик, то возникает конфликт записей на новом и старом мастер-экземпляре.

Чтобы спасти старые данные, нужно отложить .xlog-файлы со старого мастер-экземпляра. Скорее всего хватит последнего .xlog-файла, но для уверенности лучше найти .xlog-файл, который начинается со значения vclock, меньшего в соответствующих компонентах, чем последние виденные lsn-значения каждого из двух мастер-экземпляров.

Пример:

После конфликта видим:

  • на старом мастер-экземпляре: vclock {1:150, 2:120},

  • на новом мастер-экземпляре: vclock {1:110, 2:160}.

Тогда нужен xlog-файл со старого мастер-экземпляра, где vclock будет не больше {1:110, 2:120} (это минимальные lsn-значения по компонентам, которые «видели» оба мастер-экземпляра вместе).

Дальше такой xlog-файл можно только анализировать вручную (например, через tt cat). Представляет интерес самый конец этого xlog-файла – то, что потерялось со старого мастер-экземпляра. То есть записи с id равным 1 и lsn равным с 110 по 150.

Нашли ответ на свой вопрос?
Обратная связь