Opened 6 weeks ago

Closed 6 days ago

#711 closed баг (не воспроизводится)

Неожиданная перезагрузка блока 3U

Reported by: vlad Owned by: alx
Priority: низкий Milestone: 1 очередь
Component: sw Keywords: watchdog reset
Cc:

Description (last modified by vlad)

Версия sw: 1.0-r2410

В 7.30 Блок 3U был включен.
В 9.05 Алексей (с IP 192.168.0.9) заходил в веб-интерфейс и настраивал плату TD-01 (выполнено 2 записи в плату).

~ 9.24 Я и Сергей В. попытались открыть веб-интерфейс блока.
Ожидали увидеть список плат, но увидели чистую незагруженную страницу в браузере. Пинг при этом проходил. Через несколько минут блок перезагрузился по watchdog.

Ниже последние строки лога до перезагрузки. Так же прилагаю файл messages с момента загрузки блока до рестарта

Oct  8 04:28:47 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:28:47 sw01 daemon.info swd[254]: slot 2: start alarm port 1: LOF
Oct  8 04:28:47 sw01 daemon.info swd[254]: slot 2: start alarm port 4: AIS
Oct  8 04:29:02 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:02 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:02 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:08 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:08 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:08 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:10 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:10 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:10 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:15 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:15 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:15 sw01 daemon.err swd[254]: Server reached connection limit. Closing inbound connection.
Oct  8 04:29:52 sw01 user.crit kernel: at91sam9_wdt: I will reset your machine !

Attachments (1)

messages (100.8 KB ) - added by vlad 6 weeks ago.

Download all attachments as: .zip

Change History (12)

by vlad, 6 weeks ago

Attachment: messages added

comment:1 by vlad, 6 weeks ago

Description: modified (diff)

comment:2 by alx, 6 weeks ago

Почему считаешь, что это баг? Судя по множеству записей в логе Server reached connection limit. Closing inbound connection., плата была перегружена большим числом подключений и запросов по HTTP(S). То есть, как мне кажется, в данном случае перезагрузка произошла в результате внешних причин (внешнего воздействия), а не внутреннего бага...

comment:3 by vlad, 6 weeks ago

К блоку был подключен только Алексей, была открыта только одна вкладка браузера.
Блок находился в нашей сети, подключение ещё кого-либо вряд ли возможно.

п.с. даже если блок был перегружен количеством соединений (хотя я сомневаюсь в этом), то такая реакция блока на внешние воздействия тоже кажется не правильной

Last edited 6 weeks ago by vlad (previous) (diff)

in reply to:  3 ; comment:4 by alx, 6 weeks ago

Replying to vlad:

К блоку был подключен только Алексей, была открыта только одна вкладка браузера.
Блок находился в нашей сети, подключение ещё кого-либо вряд ли возможно.

??? Не понимаю, как из факта, что к плате был подключен только Алексей, следует вывод, что в плате имеется баг.

п.с. даже если блок был перегружен количеством соединений (хотя я сомневаюсь в этом), то такая реакция блока на внешние воздействия тоже кажется не правильной

Верно ли я понял, что ты считаешь неправильным использование watchdog таймера как таковое? Верно ли я понял, что именно это ты и считаешь багом?

Last edited 6 weeks ago by alx (previous) (diff)

in reply to:  2 ; comment:5 by san, 6 weeks ago

Replying to alx:

Почему считаешь, что это баг? Судя по множеству записей в логе Server reached connection limit. Closing inbound connection., плата была перегружена большим числом подключений и запросов по HTTP(S). То есть, как мне кажется, в данном случае перезагрузка произошла в результате внешних причин (внешнего воздействия), а не внутреннего бага...

Судя по моим экспериментам #712 не так уж много и надо для вывода таких надписей в лог, и перегрузкой это сложно назвать.

comment:6 by san, 6 weeks ago

??? Не понимаю, как из факта, что к плате был подключен только Алексей, следует вывод, что в плате имеется баг.

Насколько я понял, Влад имел в виду, что блок был в "нормальных" штатных условиях и внешние воздействия в этот момент были обычными, по крайней мере ничего не обычного не было замечено.

in reply to:  4 ; comment:7 by vlad, 6 weeks ago

Replying to alx:

Верно ли я понял, что ты считаешь неправильным использование watchdog таймера как таковое? Верно ли я понял, что именно это ты и считаешь багом?

Нет, не верно, к watchdog'у нет вопросов, он отрабатывает как надо)
Мне кажется странным перезагрузка, как реакция на превышение какого-то количества соединений. Вот это кажется багом, но тикет не про этот "кажущийся мне" баг.

in reply to:  5 comment:8 by alx, 6 weeks ago

Replying to san:

Судя по моим экспериментам #712 не так уж много и надо для вывода таких надписей в лог, и перегрузкой это сложно назвать.

В логе есть запись at91sam9_wdt: I will reset your machine ! - она однозначно свидетельствует о том, что было срабатывание таймера watchdog. И, следовательно, последующая перезагрузка была следствием его срабатывания.

in reply to:  7 ; comment:9 by alx, 6 weeks ago

Replying to vlad:

Нет, не верно, к watchdog'у нет вопросов, он отрабатывает как надо)
Мне кажется странным перезагрузка, как реакция на превышение какого-то количества соединений. Вот это кажется багом, но тикет не про этот "кажущийся мне" баг.

Ты неправильно меня понял. Перезагрузка, конечно же, не является реакцией на превышение лимита соединений. При превышении лимита сервер просто сразу закрывает все новые соединения, и ничего более. Само по себе превышение лимита соединений к перезагрузке не приводит, и я этого не утверждал.

Однако наличие большого числе подключений к серверу одновременно является косвенным признаком наличия повышенной нагрузки на систему. Я предполагаю, что клиенты, подключившиеся к серверу, сделали это не ради самих подключений. Подключения не были самоцелью. Наверняка же по этим соединениям серверу передавались какие-то запросы, которые сервер выполнял. Вот это выполнение получаемых от клиентов запросов (а не наличие TCP соединений как таковых) и создает повышенную нагрузку. В свою очередь, повышение нагрузки приводит к тому, что другие задачи начинают работать медленнее (так как в системе становится много активных потоков, каждый из которых выполняет какую-то работу). Вследствие этого и таймер watchdog начинает сбрасываться реже. При достижении какого-то уровня нагрузки процесс начинает работать настолько медленно, что может не успеть сбросить таймер watchdog до его срабатывания, что приведет к перезагрузке.

Еще раз уточню, что описанное выше - это всего лишь мое предположение, однако оно основано на имеющихся в логе записях. Это, конечно, не означает, что в SW-01 нет бага. Однако свидетельств наличия бага я не вижу...

in reply to:  9 comment:10 by vlad, 6 weeks ago

Replying to alx:

Вот это выполнение получаемых от клиентов запросов (а не наличие TCP соединений как таковых) и создает повышенную нагрузку.

Но в тот момент к блоку был подключен только Алексей, его браузер делал запросы. Затем был запущен браузер Сергея, из него были попытки сделать get-запросы http. Поэтому непонятно, какими запросами была перегружена плата.

comment:11 by alx, 6 days ago

Resolution: не воспроизводится
Status: newclosed
Note: See TracTickets for help on using tickets.