ISPmanager: срыв стэка. Еще один сюрприз от ISP?

M
На сайте с 16.09.2009
Offline
278
#11
WhiteSuite:
Этому ядру уже месяц и ни разу не переклинивало. А это 6 даунтаймов подряд за вечер...

"Доктор - я всегда ковырял гвоздем в ухе. А вот сегодня проколол. Почему так?"

Ну а вообще что-то менялось? Нагрузка? ISP обновляли? Может вообще filemgr был отключен, если такое возможно?

WhiteSuite:
А главно ядро то все правильно делает, что объявляет панику. Еще бы оно не объвило, если у нее стэк сорвали.

Нет. Это просто фатальная ошибка - связанная либо с некоректной работой аппаратного обеспечения либо кода операционной системы.

WhiteSuite:
Это как раз грамотное поведение ядра, к нему претензий нет.

По идее, ситуация ровно обратная - любая ошибка в пользовательском коде должна быть корректно обработана ядром. Не говоря уже, что прогаммы знать не знают о каких-то там kernel stack'ах.

WhiteSuite:
Сервер просто нереально перегрузить насильно.

Ага - он сам с треском падает.

WhiteSuite:
Форк-бомбы тоже не работают.

Форк бомбы не работают у любого мало-мальски приличного хостера. Это что-то совсем бородатое.

Т.е. конкретных примеров атаки, которая гарантированно не работает на 2.6.35, но работает скажем на 2.6.26 (это debian stable) - Вы привести не можете?

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
WhiteSuite
На сайте с 09.11.2010
Offline
21
#12
myhand:
"Доктор - я всегда ковырял гвоздем в ухе. А вот сегодня проколол. Почему так?"

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

myhand:

Ну а вообще что-то менялось? Нагрузка? ISP обновляли? Может вообще filemgr был отключен, если такое возможно?

Вот сидим вспоминаем, что мы меняли. ISP никогда не обновляем. Filemgr был включен, сейчас выключен. Но после выключения опять падение последовало. Видимо зря я наехал на ISP. С другой стороны почему каждый раз один и тот же файл?

myhand:

По идее, ситуация ровно обратная - любая ошибка в пользовательском коде должна быть корректно обработана ядром. Не говоря уже, что прогаммы знать не знают о каких-то там kernel stack'ах.

Панель на C++ написана. Все знает )))

myhand:

Ага - он сам с треском падает.

Раз в жизни из-за бага, который будет закрыт. А не каждый день от нагрузки. Это разные вещи.

myhand:

Форк бомбы не работают у любого мало-мальски приличного хостера. Это что-то совсем бородатое.

Да ладно? На каждом втором хостинге какой-нибудь сайт выжрет все ресурсы памяти. Это не форк, но результат тот же. Ну а кроме того, не работает вариант, когда занимают все процессорное время и весь ввод-вывод. Вдарьте бенчмарком по диску из мускула - сервер не чихнет даже. Опять же BurnMMX. Кроме FastVPS и Host Low Cost больше нет ни одного хостинга, кто его выдержит. Ткните пальцем на любой из них, дайте полноценный шелл с этой командой и я положу сервак.

myhand:

Т.е. конкретных примеров атаки, которая гарантированно не работает на 2.6.35, но работает скажем на 2.6.26 (это debian stable) - Вы привести не можете?

Вы не поняли. 35-е ядро так же не защищает. Но так уже есть с чем работать. Естественно там пол ядра инженеры перетряхнули, чтобы работала защита.

Конерктеный пример атаки: brunMMX. Тестируйте, скоро как раз выходные, будет чем заняться. ))))

Скоростной хостинг на платформе NodeSquad. Скромные цены и большие тестовые периоды. Отзывы на SearchEngines. (/ru/forum/comment/7975529)
M
На сайте с 16.09.2009
Offline
278
#13
WhiteSuite:
Не очень уместная шутка. Вам больше по душе школохосты на стандартных панелях и операционках, где любой сайт может уложить сервер?

А есть технические проблемы там это сделать?

Просто не называйте первый попавшийся сервер с установленной панелькой ispmanager/plesk/whatever "хостингом" - и их число упадет на много порядков. Боюсь, единицы из этих "хостеров" хоть что-то вообще знают про возможности ОС по ограничению пользователей.

WhiteSuite:
Вот сидим вспоминаем, что мы меняли. ISP никогда не обновляем. Filemgr был включен, сейчас выключен. Но после выключения опять падение последовало.

А картинка прежняя?

WhiteSuite:
Панель на C++ написана. Все знает )))

Ну сталбыть Вы не знаете. Ни C++ ни принципов работы программ в linux.

WhiteSuite:
Да ладно? На каждом втором хостинге какой-нибудь сайт выжрет все ресурсы памяти.

А я просто не называю хостингами эти "каждые вторые". Вот и все. Хостинговых компаний на самом деле - десятка два-три в России. О форк-бомбах там забыли поди лет десять назад, когда большинство этих хостингов и появилось ;-)

WhiteSuite:
Конерктеный пример атаки: brunMMX.

И что надо сделать чтобы оно у меня заработало?

Pavel.Odintsov
На сайте с 13.05.2009
Offline
169
#14

По сабжу - я бы рекомендовал проверить память, все же срыв стека крайне экзотическая проблема и редко бывает от софтвер проблем. Хотя, опять же, я подозреваю, что виноват патч, а filemgr просто экзотически дергает chown.

Решение по обнаружению DDoS атак для хостинг компаний, дата центров и операторов связи: FastNetMon (https://fastnetmon.com)
WhiteSuite
На сайте с 09.11.2010
Offline
21
#15
myhand:
Ну сталбыть Вы не знаете. Ни C++ ни принципов работы программ в linux.

Да? Вы правда считаете, что возможночти C++ сопоставимы с PHP? Поверьте, C++ может многое.

Собственно проблема найдена. Это стыковка двух багов, которая приводит к падению. Один из них filemgr, как и говорил, второй - патч на бэкапную систему.

Место в памяти виновника:

ffffffff81144ddf

И ниже видно кому оно принадлежало:

bh_log_doit.

M
На сайте с 16.09.2009
Offline
278
#16
WhiteSuite:
Да? Вы правда считаете, что возможночти C++ сопоставимы с PHP? Поверьте, C++ может многое.

Он может то, что в линукс не может ЛЮБАЯ программа, написанная на ЛЮБОМ языке программирования?

Это баг ядра. Проблемой является не приложение, а этот самый баг. Раз нашли способ воспроизвести проблему - по идее можно было бы на тестовой машинке оформить все что нужно для нормального багрепорта на @kernel.org.

WhiteSuite
На сайте с 09.11.2010
Offline
21
#17
myhand:
Он может то, что в линукс не может ЛЮБАЯ программа, написанная на ЛЮБОМ языке программирования?

Ну, например, попробуйте поиграться с указателями памяти в Java. Не уверен, что у Вас что-то получится. А эти положить сервер элементарно. В C++ можно руками их задавать.

myhand:

Это баг ядра. Проблемой является не приложение, а этот самый баг. Раз нашли способ воспроизвести проблему - по идее можно было бы на тестовой машинке оформить все что нужно для нормального багрепорта на @kernel.org.

Это не баг ядра. Это баг бэкапной системы, частично внедренной в ядро.

M
На сайте с 16.09.2009
Offline
278
#18
WhiteSuite:
Ну, например, попробуйте поиграться с указателями памяти в Java. Не уверен, что у Вас что-то получится. А эти положить сервер элементарно. В C++ можно руками их задавать.

И что, это вызовет kernel panic?

WhiteSuite:
Это не баг ядра. Это баг бэкапной системы, частично внедренной в ядро.

Ну, если код работает в пространстве ядра - это баг ядра, верно? А уж сторонний это модуль или из vanila - Вам виднее, мы ж тут не телепаты совсем ;-)

WhiteSuite
На сайте с 09.11.2010
Offline
21
#19
myhand:
И что, это вызовет kernel panic?

Да. Неаккуратная работа с указателями в C++ вызовет панику ядра. В Java так накосячить не получится. Только если специально и то тяжело. C++ крайне гибкая штука, но если не уметь им пользоваться, то он в мясорубку сервер превратить может.

Данная проблема, как выяснилось была именно в кривом коде C++. Как видите свалил сервер.

Вот мой коллега нашел строчку:

strncat(all_path, "/", sizeof("/"));

Объединили два стринга. Только длина второго была не количество символов, а количество байт, которое занимает "/", а это больше. Образовался пустой участок памяти, который вышел за обозначенные пределы и вот Вам пожалуйста, kernel panic вызванный кодом C++.

myhand:

Ну, если код работает в пространстве ядра - это баг ядра, верно?

Ну так то да, но ядра не kernel.org )))) С Кернела скачали хорошее ядро, а испортили его уже потом. Нечего им багрепортить. Самим исправлять надо.

Открытым остался только вопрос, почему именно ISP попался на это.

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#20

Забавно обвинять ISPmanager в ошибке собственнопатченного ядра.

Boris A Dolgov добавил 27.01.2011 в 00:48

WhiteSuite:
Да. Неаккуратная работа с указателями в C++ вызовет панику ядра. В Java так накосячить не получится. Только если специально и то тяжело. C++ крайне гибкая штука, но если не уметь им пользоваться, то он в мясорубку сервер превратить может.
.

Нет, этого никогда не бывает и не может быть. Иначе я бы уронил любой сервер программой *((int*)0)=0; Работа с указателями в юзерспейсе вызовет сегфолт или даже сигбас, но никогда не панику. Панику вызовет работа с указателями в ядре.

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий