Неработоспособность сайта при обновлении местоположений

Рейтинг: 1.7804  
Новая
Предложил Петрович 03.09.2020 13:39:43

Неработоспособность сайта при обновлении местоположений

Возникла вроде бы рядовая ситуация: к имеющимся местоположениям России добавить несколько стран с меньшей детализацией, без улиц.
 
  • Попытался добавить местоположения - страны: Беларусь, Казахстан, Украина, Бельгия, Израиль
  • Без улиц, с загрузкой до Сел включительно, без удаления  существующих местоположений, Набор расширенный, без округов, с яндекс и zip кодами, с поддержкой структурной целостности
  • В процессе обновления был удален индекс - это делается по умолчанию и никаких диалогов перед этим нет
  • В процессе обновления возникла ошибка - это было прям так и написано в диалоге обновления
  • Поскольку оформление завязано на местоположения, а индексы удалились, то и оформление перестало работать
  • В момент обновления местоположений очень много ресурсов требовала БД и мы вышли за лимит
  • Обновили лимиты до максимума на тарифе - не хватило все-равно
  • Обновил тариф и лимит до максимального вообще - не хватило все-равно
  • Повторное удаление и загрузка всех местоположений по настройке выше тоже выдали ошибку
  • Сайт тоже упал, не только оформление
  • MySQL server has gone away in
  • Через 5 часов удалось восстановить работоспособность
Возникает вопрос: а что за алгоритм обновления такой интересный, который полностью уничтожает сайт при довольно рядовой ситуации (количество городов по всем этим странам вместе взятым меньше, чем количество улиц в России)?
Почему потребовалось принудительно удалять индекс до обновления, есть же операция переиндексации?

Думаю, надо пересмотреть логику. Не нужно удалять индекс при обновлении, если это не отмечено в настройках.

Рейтинг: 0  
Петрович 03.09.2020 13:59:37
Как перенести в управление сайтом?
Рейтинг: 1  
Исупов Александр 06.09.2020 00:56:10
У нас тоже в новых местоположениях половина данных потерялась. Ждём исправлений...  
Рейтинг: 0  
Петрович 27.09.2020 12:06:00

Техподдержка Битрикса рекомендовала обновить Битрикс и попробовать загрузить местоположения.

  • Обновили битрикс до 20.0.1800
  • Обновили PHP до 7.2.31
  • Успешно обновили местоположения на dev -закачали все страны, подключили нужные для сайта
  • В процессе обновления местоположений было замечено существенное  снижение потребления ресурсов на MySQL (23% суточного лимита примерно за  4 часа), по сравнению с предыдущей версией Битрикса (18) и PHP (7.1). Что наглядно видно на графике (26/09 уже обновленный Битрикс и PHP, против 2-3/09 на предыдущих версиях. И это при том, что 26/09 обновляли все местоположения, а 2/09 и 3/09 всего пару стран добавляли).
  • https://i.gyazo.com/55a4d1291868866df41a0318d273fe2d.png
  • Окрыленные успехом, решили перейти на боевой сайт, на продакшене успешно добавили местоположения Беларусь, Казахстан
  • На продакшене, при попытке добавить Украину, получили ошибку в  обновлении, т.е. просто красным написано "Ошибка" в диалоге обновления и  никаких комментариев
  • Пр этом, были удалены некоторые индексы в БД, т.е. оформление заказа не работало
  • Пришлось подключать бекап БД с потерей заказов, пользователей и корзин
  • Пользователей и корзины восстановили потом
  • Заказы вручную восстановили потом

Учитывая то, что на dev все прошло без проблем, и то, что окружение  было абсолютно идентично, можно предположить, что виноват в этом  Timeweb. Скоре всего, у них стоит бот, который при определенных  параметрах завершает выполнение скриптов.

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

Выводы для нас: можно dev держать на виртуальном сервере, чтобы полностью контролировать скрипты.