38 просмотров
от (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

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

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

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

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

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

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

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

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

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

Только 

1 Ответ

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

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

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

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

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

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

1.7 тыс. ответов

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

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

...