Opened 6 лет ago

Closed 6 лет ago

#110 closed баг (сделано)

Падает smarthdcd

Сообщил: san Владелец: alx
Приоритет: средний Этап разработки: 1-я очередь
Ключевые слова: Копия: Art_M, andrei

Описание

25 Октября в 14-13 (пермск.) Артём через панель оператора изменял значения некоторых настроек в блоке.
Внезапно контроллер перестал отвечать на нажатия кнопок и переключателя, и индикаторы перестали менять своё состояние.
Алексей, подключившись к контроллеру удалённо сообщил что smarhdcd отсутствует в списке запущенных процессов.

В тот-же день наблюдались ещё два подобных случая:

~11-23(пермск.) Артёма открыл страничку состояния сети, и наблюдал за уровнем сигнала, затем заметил что данные перестали обновляться и контроллер не отвечает на нажатия кнопок.

20-43(пермск.) Вечером Артём ушел ~в 18 и оставил контроллер включенным, ЧРП отключил. Утром следующего дня было обнаружено что smarthdcd упал.

r602
Логи происшествий есть у Алексея.
Т.к. последствия отсутствия smarthdcd достаточно серьёзные, Артём предложил #106 в качестве обходного пути.

История изменений (3)

comment:1 by san, 6 лет ago

Да, уточню, во всех трёх случаях станция находилась в режиме "Стоп".

comment:2 by alx, 6 лет ago

Одна из станций при падении отложила корку. Вот бэктрейс:

#0  0xb6c53dcc in X509_VERIFY_PARAM_inherit ()
   from /home/alx/work/SmartDevice/poky/build/tmp/work/cortexa5hf-vfp-poky-linux-gnueabi/smarthdc/1.0-r609/recipe-sysroot/usr/lib/libcrypto.so.1.0.2
#1  0xb6b39d18 in SSL_new ()
   from /home/alx/work/SmartDevice/poky/build/tmp/work/cortexa5hf-vfp-poky-linux-gnueabi/smarthdc/1.0-r609/recipe-sysroot/usr/lib/libssl.so.1.0.2
#2  0x0006bb90 in Http2Session::Http2Session (this=0x4197a8, ctx=<optimized out>, sockfd=22, addr=0xbec83528, addrlen=28, mh=0x417fe0)
    at /usr/src/debug/smarthdc/1.0-r609/trunk/http_server.cpp:1050
#3  0x0006bddc in HTTP::io_callback (this=0x40a730, events=<optimized out>) at /usr/src/debug/smarthdc/1.0-r609/trunk/http_server.cpp:1778
#4  0x00024a88 in EPoller::wait (ms=ms@entry=0) at /usr/src/debug/smarthdc/1.0-r609/trunk/epoller.cpp:48
#5  0x00017acc in main () at /usr/src/debug/smarthdc/1.0-r609/trunk/smarthdcd.cpp:180

Падение произошло в libssl при вызове SSL_new() при подключении на HTTPS порт (443). Предположительная причина: при старте сервера контекст SSL был создан, но из-за отсутствия сертификата не смог быть инициализирован, и был удален, но указатель на него остался. При входящем соединении в SSL_new() передался указатель на "мусор".

comment:3 by alx, 6 лет ago

Решение: сделано
Состояние: newclosed

В r610 при неудаче инициализации контекста SSL указатель на него обнуляется. Кроме того, при вызове start() сокет HTTPS создается только если контекст SSL был успешно инициализирован.

Note: See TracTickets for help on using tickets.