OberonCore https://forum.oberoncore.ru/ |
|
Очередная дыра в Mono https://forum.oberoncore.ru/viewtopic.php?f=27&t=2303 |
Страница 1 из 1 |
Автор: | Сергей Губанов [ Вторник, 02 Февраль, 2010 13:48 ] |
Заголовок сообщения: | Очередная дыра в Mono |
Ситуация: Программа зависла. Жрёт 100% одного ядра процессора (всего ядер в системе восемь). Виртуальной памяти съето почти по максимуму - 3818m, физической нормально - 82m. Программа многопоточная, но все потоки зависли. Смотрим через top, видим следующее: да все потоки кроме одного спят, один жрёт 100% одного ядра. Mono 2.4.3 Долго думали что за хрень приключилась. Ну не могли все потоки одновременно взять и зависнуть. Даже если что-то криво написано и один поток зациклился, то остальные 7 процессорных ядер же свободны, то есть все другие части программы должны работать как ни в чём не бывало. Но они не работают, спят. Наконец дошло. Когда бывает такое, чтобы все потоки кроме одного спали? А такое бывает когда сборщик мусора всех остановил и пошёл мусор собирать! Зациклился и завесил всю систему сам сборщик мусора Mono 2.4.3!!!!!!!!!!!! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Автор: | Info21 [ Вторник, 02 Февраль, 2010 14:24 ] |
Заголовок сообщения: | Re: Очередная дыра в Mono |
Сергей Губанов писал(а): Зациклился и завесил всю систему сам сборщик мусора Mono 2.4.3!!!!!!!!!!!! При таком-то номере версии ... -- удивительно мне это.![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Надо запомнить -- отсылать сюда, когда кто будет обижаться на "партизан-рукосуев-ополченцев...". |
Автор: | Trurl [ Вторник, 02 Февраль, 2010 17:31 ] |
Заголовок сообщения: | Re: Очередная дыра в Mono |
Сергей Губанов писал(а): Когда бывает такое, чтобы все потоки кроме одного спали? А такое бывает когда сборщик мусора всех остановил и пошёл мусор собирать! Не только. Может, они все ждут Очень Важных Данных, которые один поток усердно добывает. |
Автор: | Сергей Губанов [ Вторник, 02 Февраль, 2010 18:29 ] |
Заголовок сообщения: | Re: Очередная дыра в Mono |
Ждёт там только один поток (на блокирующем socker.Receive). Остальные потоки, если им становится нечего делать, засыпают на время от 4 до 50 миллисекунд, потом просыпаются и перепроверяют не надо ли чего-нибудь сделать, периодически кое-что делают. То есть все сразу могут уснуть только по повелению сборщика мусора. |
Автор: | Сергей Губанов [ Вторник, 02 Февраль, 2010 18:37 ] |
Заголовок сообщения: | Re: Очередная дыра в Mono |
Кстати, я не утверждаю что ошибка именно в моновском сборщике мусора. Наверняка где-то опять память запороли, а сборщик мусора из-за этого зациклился. Например, летом прошлого года во времена Mono 2.4.2 эти монистые-гении память портили (медицинский факт), в 2.4.2.3 исправили. А в 2.4.3 значит опять двадцать пять. Сейчас эти монстры уже выпустили версию 2.6.1 надо будет пробовать её. |
Автор: | Peter Almazov [ Вторник, 02 Февраль, 2010 18:45 ] |
Заголовок сообщения: | Re: Очередная дыра в Mono |
А Вы что, можете это воспроизвести? |
Автор: | Сергей Губанов [ Вторник, 02 Февраль, 2010 19:07 ] |
Заголовок сообщения: | Re: Очередная дыра в Mono |
Порчу памяти в моно 2.4.2 я воспроизводил регулярно после того как написал симулятор большой нагрузки (при малой нагрузке ждать падения в среднем надо было часов 6-12, хотя могло и через 20 минут упасть). Сегодняшний случай с моно 2.4.3 обнаружили тестеры. Сегодня уже во второй раз. Какое-то время назад был первый раз, но тогда мы вообще не поняли что же это за ерунда такая стряслясь. Сегодня, когда это повторилось стали разбираться всерьёз. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |