Архив рубрики: Проблемы и решения

Описания различных проблем и способы их решения

AWS RDS: PDOException: SQLSTATE[08004] [1040] Too many connections

26 декабря 2018
 

 В Sentry начали сыпаться ошибки вида: PDOException: SQLSTATE[08004] [1040] Too many connections in /data/projects/project/vendor/yiisoft/yii2/db/Connection.php:687 Stack trace: #0 /data/projects/project/vendor/yiisoft/yii2/db/Connection.php(687): PDO->__construct(‘mysql:host=stag…’, ‘user’, ‘pass’, NULL) Для всех инстансов RDS MariaDB максимальное кол-во подключений считается по формуле {DBInstanceClassMemory/12582880}. Т.е. в нашем случае это тип db.m4.xlarge с 16ГБ памяти, следовательно: [simterm] $ echo «(16*1024*1024*1024)/12582880» | bc 1365 [/simterm] Для указания значения лимита… Читать далее »

memcached: Too many open files

24 декабря 2018
 

 Перед Новым Годом делали нагрузочное тестирование, насобиралось несколько черновиков по мелким фиксам. Без детального расмотрения, просто примеры того, как можно исправить некоторые ошибки. В данном случае — у нас иногда начинал отваливаться memcached с ошибкой вида: Dec 16 00:40:12 bttrm-stage-app-1 systemd-memcached-wrapper[14041]: accept4(): Too many open files Редактируем /etc/security/limits.conf, задаём лимиты для пользователя memcache, от которого… Читать далее »

Arch Linux: File /usr/lib/libQt5Positioning.so.5.12.0 is empty, not checked

14 декабря 2018
 

 Уже не первый раз ноут вырубается от перегрева (см. Linux: /lib/modules/4.16.13-1-ARCH/modules.devname not found и error: file ‘/grub/i386-pc/normal.mod’ not found и Linux: /usr/bin/ps: empty и ldconfig: File /usr/lib/libprocps.so.7 is empty, not checked.), теперь вылезла аналогичная проблема, но с библиотеками Qt. В /var/log/pacman.log куча ошибок типа: [2018-12-13 21:55] [ALPM-SCRIPTLET] ldconfig: File /usr/lib/libQt5Positioning.so.5.12.0 is empty, not checked. [2018-12-13 21:55] [ALPM-SCRIPTLET] ldconfig:… Читать далее »

Android Studio: emulator — qt_setup.cpp:28:Qt library not found

12 декабря 2018
 

 При запуске emulator (см. Appium: Android Virtual Device, Original error: Condition unmet after 60159 ms и костыль) — возникает ошибка qt_setup.cpp:28:Qt library not found: [139824804910912]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib Could not launch ‘/home/projectname/projectname/../emulator/qemu/linux-x86_64/qemu-system-i386’: No such file or directory Девайс запускается из Jenkins-джобы: node(‘android’) { stage(‘Run UI tests’) { ws(‘/home/projectname/projectname’) { sh ‘/usr/local/bin/appium -p 4723 —session-override… Читать далее »

DNS: dnsmasq и порядок разрешения домён из resolv.conf

11 декабря 2018
 

 Имеется AWS EC2 инстанс, на котором запущен dnsmasq. Имеется AWS RDS-инстанс, для которого разрешён публичный доступ, и у домена которого, соответственно, есть два IP — публичный, если запрашивать публичные DNS, и приватный, который отдаётся DNS самого Amazon, с DNS VPC, в котором запущены инстансы. См начало поста AWS: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution… Читать далее »

Appium: Android Virtual Device, Original error: Condition unmet after 60159 ms и костыль

6 декабря 2018
 

 Проблема: UI-тесты, запускаемые с помощью Appium, падают. Задача: найти причину, и пофиксить. Что бы воспроизвести проблему —  установили Android Studio на рабочую машинку и создали устройство. Теперь — можно настроить «тестовый тест», а потом попробовать запустить наши реальные тесты. Забегая наперёд — проблема была найдена, но решения не нашёл, потому пришлось костылить в Jenkins-джобе. Сама проблема на… Читать далее »

AWS: s3fs — Permission denied

22 ноября 2018
 

 После начала использования s3fs — выяснилась одна деталь. Файлы загружаются с помощью boto3. Но после того, как корзина смонтирована к системе — получить доступ к файлам нельзя: [simterm] $ cp /mnt/projectname-idfa/projectname\ android\ purchase\ idfa.csv /tmp/ cp: cannot open ‘/mnt/projectname-idfa/projectname android purchase idfa.csv’ for reading: Permission denied [/simterm] Проверяем права на файлы — и ой: [simterm]… Читать далее »

Arch Linux: pacman — signature from USERNAME is unknown trust

31 октября 2018
 

 При установке пакета из репозитория — возникает ошибка: … error: liblxqt: signature from «Jerome Leclanche <[email protected]>» is unknown trust :: File /var/cache/pacman/pkg/liblxqt-0.13.0-1-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)). … Для решения — обновляем ключи в локальном хранилище /etc/pacman.d/mirrorlist: [simterm] [root@archlinux yay]# pacman-key —refresh-keys gpg: refreshing 103 keys from hkp://pool.sks-keyservers.net … [/simterm] И запускаем… Читать далее »

Linux: logrotate не срабатывает из cron

26 октября 2018
 

 Имеется logrotate, имеется для него daily-задача в кроне. Проблема в том, что задача-то есть, файлы настроек для ротации логов — есть, но логи не меняются и продолжают нагло жрать место. В статусе logrotate — срабатывания за сегодня нет: [simterm] root@bttrm-stage-console:~# cat /var/lib/logrotate/status logrotate state — version 2 «/var/log/rabbitmq/[email protected]» 2018-10-23-10:56:16 «/var/log/rabbitmq/[email protected]» 2018-10-24-12:0:49 [/simterm] Проверяем содержимое файла… Читать далее »

RabbitMQ: использование диска и перенос базы данных

22 октября 2018
 

 Около 9 вечера мониторинг сообщил, что на одном из production-серверов забивается место. Причём забивалось оно очень быстро, и за пару часов «скушалось» 3 гига из 8 доступных на root-разделе. Забивался диск в каталоге базы RabbitMQ — /var/lib/rabbitmq/mnesia. Быстрый фикс — перенести его базу на отдельный диск. Создаём новый каталог: [simterm] root@bttrm-prod-console:/home/admin# cd /data/ && mkdir… Читать далее »