Получи случайную криптовалюту за регистрацию!

Недавно встретился с интересной, на мой взгляд, проблемой Про | /maffinca

Недавно встретился с интересной, на мой взгляд, проблемой

Проблема: на сайте перестали загружаться фотографии в личной кабинете
Проблема точнее: при загрузке любого разрешенного файла сервер давал таймаут на 504 ошибку
Что я пробовал:
1. Проверил ветки гита (т.к есть тестовый и продакшн сервер) - нету отличий. Проверил ветку master локально - проблемы нет
2. Проверил когда возникла проблема и когда делался релиз в последний раз - ошибка появилась 2 недели назад, релиз был месяц назад, за другие 2 недели фотки грузились нормально
3. Проверил логи приложения и логи nginx’a - судя по логам nginx’a сайт отправляет слишком много переменных, что неверно. Поднял время на таймаут и кол-во возможных переменных в конфиге php - не помогло
4. Перезапустил nginx - не помогло
5. Проверил место на сервере - хватает как места, так и озу
6. Проверил по мониторингу что с нагрузкой - в пределах нормы
Финальная проблема: Оказалось, что бд пишет логи медленных запросов. Пошел смотреть где проблема и почему бд не справляется
В итоге перед занесением данных по файлу в бд скрипт генерирует уникальное имя из 10 символов, а уникальность проверяет циклом по всей базе (уникальная проверка 10 хэшированных с помощью md5 символов). В итоге получилось так, что уникальные имена закончились и цикл улетел в бесконечность, из-за чего и прилетал таймаут
Решение: т.к решение было нужно срочно - поднял кол-во символов с 10 до 15, тем самым отсек еще пару тысяч загрузок, можно спать спокойно, однако в цикле делались запросы к бд, что не хорошо, ибо их может быть за 100-200 или больше, от чего база может упасть. Это исправлять пока не стал