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

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

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

от (87.4 тыс. баллов)
места на дисках хватает?
от (260 баллов)
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

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

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

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

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 $?
Ну и вывод сообщения об ошибке тоже не помешает. 
от (260 баллов)
Уже ребутнулся, но если повторится проверю, спасибо
от (260 баллов)
~# ps | grep beanstalk

11042 root      0:00 grep beanstalk

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

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

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

[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
от (87.4 тыс. баллов)
очень плохая ошибка. отладить крайне сложно.

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

Только 

1 Ответ

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

Можно вот такой скрипт добавить в 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

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

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

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

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

1.8 тыс. ответов

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

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

...