486 просмотров
от (310 баллов) в категории Тонкая настройка

Отваливается веб интерфейс с ошибкой 

Call to a member function getMessagesFromTube() on null

Версия 2021.1.54

В логах 

Mar 26 14:13:00 daemon.err php.backend[28288]:  Socket error 111: Connection refused on MikoPBX\Core\Workers\WorkerAmiListener_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28313]:  Socket error 111: Connection refused on MikoPBX\PBXCoreREST\Workers\WorkerApiCommands_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28331]:  Socket error 111: Connection refused on MikoPBX\Core\Workers\WorkerCdr_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28311]:  Socket error 111: Connection refused on MikoPBX\PBXCoreREST\Workers\WorkerApiCommands_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28348]:  Socket error 111: Connection refused on MikoPBX\Core\Workers\WorkerCallEvents_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28411]:  Socket error 111: Connection refused on MikoPBX\Core\Workers\WorkerNotifyByEmail_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28373]:  Socket error 111: Connection refused on MikoPBX\Core\Workers\WorkerModelsEvents_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28429]:  Socket error 111: Connection refused on MikoPBX\Core\Workers\WorkerNotifyError_EXCEPTION

Mar 26 14:13:01 daemon.err php.backend[28478]:  Socket error 111: Connection refused on MikoPBX\Core\Workers\WorkerBeanstalkdTidyUp_EXCEPTION

Mar 26 14:13:07 local7.err php-errors[9421]:  Call to a member function getMessagesFromTube() on null (errno: 0) in /offload/rootfs/usr/www/src/AdminCabinet/Plugins/CacheCleanerPlugin.php:41

Mar 26 14:13:08 local7.err php-errors[9419]:  Call to a member function getMessagesFromTube() on null (errno: 0) in /offload/rootfs/usr/www/src/AdminCabinet/Plugins/CacheCleanerPlugin.php:41

Mar 26 14:13:08 local7.err php-errors[9420]:  Call to a member function getMessagesFromTube() on null (errno: 0) in /offload/rootfs/usr/www/src/AdminCabinet/Plugins/CacheCleanerPlugin.php:41

Mar 26 14:13:08 local7.err php-errors[9421]:  Call to a member function getMessagesFromTube() on null (errno: 0) in /offload/rootfs/usr/www/src/AdminCabinet/Plugins/CacheCleanerPlugin.php:41

от (122 тыс. баллов)
места на дисках хватает?
от (310 баллов)
Filesystem                Size      Used Available Use% Mounted on

none                      3.9G    328.0K      3.9G   0% /dev

tmpfs                     7.0G     33.8M      7.0G   0% /

/dev/sda2               396.9M    349.3M     43.5M  89% /offload

/dev/sda3                14.1M    583.0K     13.2M   4% /cf

/dev/sdb1                68.7G     48.3G     16.8G  74% /storage/usbdisk1

~#
от (122 тыс. баллов)

Такое впечатление, что не запущен сервер очередей (распределяет задачи между процессами):

Попробуйте в консоли выполнить команду:

ps | grep beanstalk

Пример вывода:

4948 root      0:09 /bin/beanstalkd -l 127.0.0.1 -p 4229 -z 524280

Если вывод пустой, то можно попробовать запустить процесс вручную
/bin/beanstalkd -l 127.0.0.1 -p 4229 -z 524280
Если процесс не запускается, то посмотреть код сообщения об ошибке:
echo $?
Ну и вывод сообщения об ошибке тоже не помешает. 
от (310 баллов)
Уже ребутнулся, но если повторится проверю, спасибо
от (310 баллов)
~# ps | grep beanstalk

11042 root      0:00 grep beanstalk

Руками запускается без ошибок, он пишет куда нибудь логи? Или что можно еще проверить?
от (122 тыс. баллов)
лога нет. обычно сервис работает без проблем

странно, что процесс мертв. мб в "системных логах" есть описание ошибки.

после ручного запуска процесса работа восстанавливается?
от (310 баллов)
Вот что смог насобирать

[131081.729637] beanstalkd[2909]: segfault at 60 ip 00000000004035d9 sp 00007fff1412c998 error 6 in beanstalkd[400000+c000]

[223400.275667] beanstalkd[13760]: segfault at 69 ip 0000000000401f82 sp 00007ffdc03e0ef8 error 4 in beanstalkd[400000+c000]

[297427.556095] beanstalkd[17837]: segfault at 60 ip 00000000004035d9 sp 00007ffe91e69ec8 error 6 in beanstalkd[400000+c000]

~# free

              total        used        free      shared  buff/cache   available

Mem:        8157396      310648     2015676       83304     5831072     7661020

Swap:       2097148           0     2097148
от (122 тыс. баллов)
очень плохая ошибка. отладить крайне сложно.

какие доп. модули используете?
от (310 баллов)

Только 

1 Ответ

от (122 тыс. баллов)

Можно вот такой скрипт добавить в cron

#!/bin/sh

# Приоритет запуска процесса.
PRIORITY=0
# Путь и базовые параметры для запускаемого приложения.
PATHTOBIN="/bin/beanstalkd";
# Имя сервиса.
NAME=$(basename "$(echo "$PATHTOBIN" | tr ' ' '-')");
NAMESAFE=$(basename "$(echo "$0" | tr ' ' '-')");
MEMSIZE=534280;
MYPID="$$";

# Длительно ожидание перед новым запуском.
SLEEPSECS=1

/bin/busybox ps | /bin/busybox grep "$NAMESAFE" | /bin/busybox grep -v "$MYPID" | /bin/busybox grep -v grep > /dev/null;
resultGrep="$?";
if [ "${resultGrep}" = '0' ]; then
echo "Another process is already running" ;
exit 0;
fi;
echo "Starting $NAMESAFE..." ;

pidOld=$(/bin/busybox ps | /bin/busybox grep beanstalkd | /bin/busybox grep -v "$NAMESAFE" | /bin/busybox grep -v grep | /bin/busybox awk '{ print $1}');
if [ -n "$pidOld" ]; then
/bin/busybox kill "$pidOld";
fi;

message() {
echo "$1" >&2
logger -t "$NAME" "$1"
}

run_bin()
{
while :; do
nice -n "$PRIORITY" "$PATHTOBIN" -l 127.0.0.1 -p 4229 -z "$MEMSIZE"
EXITSTATUS="$?"
message "$NAME ended with exit status $EXITSTATUS"
if test "x$EXITSTATUS" = "x0" ; then
message "Bin $NAME shutdown normally."
sleep 30
else
message "$NAME died with code $EXITSTATUS."
fi
message "Automatically restarting $NAME."
sleep $SLEEPSECS

done
}

run_bin &

Сохраните его на АТС по пути 

/storage/usbdisk1/mikopbx/custom_modules/safe-beanstalkd.sh

Далее через Кастомизацию системных файлов добавить в конец файла  /var/spool/cron/crontabs/root:

*/5 * * * * /bin/sh /storage/usbdisk1/mikopbx/custom_modules/safe-beanstalkd.sh > /dev/null 2> /dev/null

от (122 тыс. баллов)
Этот скрипт будет восстанавливать работу beanstalkd в случае падения. Время реакции 1 секунда.
На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...