Ошибка авторизации

Здравствуйте!
Постоянно (более 8000 раз за месяц) возникает ошибка “Ошибка выполнения запроса “Аутентификация на сервере”. An error occurred while updating the entries. See the inner exception for details. An error occurred while updating the entries. See the inner exception for details. Transaction (Process ID 53) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (Имя входа: uk)”. “Process ID” в каждой ошибке разный. Под учётной записью “uk” идут обращения к вэб-сервису ЛЭРС. Как диагностировать причину ошибки и как с ней бороться?

Покажите журнал работы сервера ЛЭРС УЧЕТ.

Вы имеете ввиду “Администрирование/Системный журнал”?

Я имел ввиду журнал работы сервера ЛЭРС УЧЕТ. Ознакомьтесь со статьёй Где хранятся журналы работы ЛЭРС УЧЁТ.

А может вас не затруднит и дальнейший свой текст расшифровать? А то не понятно что именно вы просите.

  1. Что значит показать? Скриншот что ли сделать? Или сами .log файлы вам прислать?
  2. Вы пишете журнал в единственном числе. Но там во-первых их два вида “server” и “server_error”. Какой именно нужен? Или оба? И во-вторых логов там за 8 дней. За один день достаточно или все нужно? Файлы server.log достаточно большие - около 40 Мб за каждый день.
  1. Да, необходим именно файл журнала работы Сервера ЛЭРС УЧЕТ.
  2. “server_error” это журнал ошибок работы Сервера ЛЭРС УЧЕТ, поэтому необходим именно “server”. Пришлите журнал за день, в который возникла описанная ошибка.

Я отправил журнал на почту support@lers.ru
Журнал за 15.03.19 - за этот день очень много ошибок было

Пришлите, пожалуйста, также журнал работы Веб-интерфейса за это же число.

Отправил так же на support@lers.ru

Мы обнаружили что у вас установлена устаревшая версия Веб-интерфейса ЛЭРС УЧЕТ 3.07 R28.6. Пожалуйста, обновите Веб-интерфейс и ЛЭРС УЧЕТ в целом до текущей версии 3.29,6 и проверьте возникнет ли данная ситуация в этой версии. Если она повторится приложите журналы Сервера ЛЭРС УЧЕТ и Веб-интерфейса ЛЭРС УЧЕТ текущей версии за дату обнаружения проблемы.

В принципе, версия не настолько важна. Ошибка возникает из-за того что одновременно большое количество пользователей пытается войти на сервер. Скорее всего влияет ещё и то, что все пользователи у вас входят под одним и тем же логином (что в общем-то неверно).

Одновременный вход большого числа пользователей приводит к взаимоблокировке в БД при попытке сохранить историю входа. Мы воспроизвели взаимоблокировку на тестовом стенде и нашли возможное решение. Среди разработчиков уже давно обсуждается необходимость включить другой уровень изоляции транзакций, который поможет сократить количество взаимоблокировок. Возможные побочные эффекты с этим уровнем пренебрежимо малы для ЛЭРС УЧЁТ.

Завтра мы выложим утилиту для изменения уровня изоляции БД. Пожалуйста, запустите её и обязательно сообщите, прекратилась ли ошибка входа.

Отвечаю на все вопросы по порядку.

  1. Обновить ЛЭРС сможем только после 25 марта. После того, как сделаем все ежемесячные отчеты. Рисковать обновлением практически перед самой отчётной датой не будем. Вдруг с обновлением что-то в отчётах сломается, как уже бывало.

  2. Ошибка была не всегда. Наш личный кабинет, который и обращается к ЛЭРС через web-интерфейс, существует уже очень давно и всё прекрасно работало до очередного обновления ЛЭРС. Вот здесь я уже точно не помню, или после обновления с R25.07 до R26.0 стала ошибка появляться, или после обновления с R26.0 до R27.5. Последнее наше обновление до R28.6 на ситуацию никак не повлияло, ошибка не исчезла. Сам личный кабинет работает по-прежнему без проблем, но вот эти тысячи сообщений в ЛЭРС напрягают, я думаю это неправильно, что они есть.
    Для ЛЭРС пользователь у нас по сути один - это ЛК, но потоков может быть много, да. Не заводить же нам еще и в ЛЭРС тысячу аккаунтов, отдельных для каждой квартиры?

  3. Утилита не может повлиять на опрос/отчеты? Может тоже лучше подождать следующей недели?

  1. В таком случае лучше дождаться обновления, чтобы не вносить изменения в обход системы контроля версий БД.
  2. Мы изменили механизм сохранения пароля, это наложилось на то, что у вас большое количество пользователей входит под одним и тем же логином, ошибка начала проявляться. Обновление до 28й версии не могло повлиять на ошибку. Меры мы приняли сразу после вашего обращения, но попадут нужные правки только в 3.29.7. Ну и, естественно, сообщения об ошибках это не нормально, нужно обращаться в техподдержку.
  3. Ну по хорошему именно так и надо - отдельный аккаунт на квартиру. Это можно автоматизировать, можно поручить диспетчеру (как это делается у нас на предприятии, например). В конце концов, когда пользователи заходят под одной учётной записью они видят то, что им видеть не следует.
  1. Хорошо, давайте так и сделаем. Я правильно понял, что вы имеете ввиду обновление 3.29.7?

  2. Ну мы и обратились. Только подождали для приличия пару обновлений - вдруг само бы починилось. Справедливости ради стоит отметить, что при обновлениях не только иногда что-то ломается, но и бывает само починяется. :slight_smile:

  3. Тут, видимо, нужно пояснить… Дело в том, что у нас свой ЛК. Это наша собственная разработка (а так же мобильные приложения). Там как раз и есть свой логин для каждой квартиры, поэтому никто ничего лишнего не видит. Просто в нашем ЛК не только данные из ЛЭРС отображаются, но и из 1с, и оплата ком.услуг тут же в ЛК сделана. Взаимодействие между ЛК и ЛЭРС выстроено следующим образом: когда пользователь открывает страничку, где должны быть показания (или расход) приборов учёта, движок ЛК через web-интерфейс обращается к ЛЭРС и подгружает нужные данные прямо в real-time. Поэтому этот логин “uk” в ЛЭРС- это логин для нашего движка ЛК. Поэтому и бывает несколько одновременных запросов в ЛЭРС.

Да, все верно, обновитесь до версии 3.29.7 и проверьте будет ли возникать данная ошибка.

Обновили сегодня до версии 3.29.7. Пока тишина насчёт ошибок, но времени маловато еще прошло. Подождём еще пару дней. Результаты сообщу.

Ожидаем от вас результат.

Трое суток прошло, полёт нормальный. Ошибка больше не появляется. Вопрос можно закрывать. Благодарю за решение и за оперативность!