OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 29 Март, 2024 13:44

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Очередная дыра в Mono
СообщениеДобавлено: Вторник, 02 Февраль, 2010 13:48 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Ситуация:

Программа зависла. Жрёт 100% одного ядра процессора (всего ядер в системе восемь). Виртуальной памяти съето почти по максимуму - 3818m, физической нормально - 82m. Программа многопоточная, но все потоки зависли. Смотрим через top, видим следующее: да все потоки кроме одного спят, один жрёт 100% одного ядра.

Mono 2.4.3

Долго думали что за хрень приключилась. Ну не могли все потоки одновременно взять и зависнуть. Даже если что-то криво написано и один поток зациклился, то остальные 7 процессорных ядер же свободны, то есть все другие части программы должны работать как ни в чём не бывало. Но они не работают, спят.

Наконец дошло.

Когда бывает такое, чтобы все потоки кроме одного спали?

А такое бывает когда сборщик мусора всех остановил и пошёл мусор собирать!

Зациклился и завесил всю систему сам сборщик мусора Mono 2.4.3!!!!!!!!!!!! :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дыра в Mono
СообщениеДобавлено: Вторник, 02 Февраль, 2010 14:24 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сергей Губанов писал(а):
Зациклился и завесил всю систему сам сборщик мусора Mono 2.4.3!!!!!!!!!!!! :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:
При таком-то номере версии ... -- удивительно мне это.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дыра в Mono
СообщениеДобавлено: Вторник, 02 Февраль, 2010 17:31 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Сергей Губанов писал(а):
Когда бывает такое, чтобы все потоки кроме одного спали?

А такое бывает когда сборщик мусора всех остановил и пошёл мусор собирать!


Не только. Может, они все ждут Очень Важных Данных, которые один поток усердно добывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дыра в Mono
СообщениеДобавлено: Вторник, 02 Февраль, 2010 18:29 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Ждёт там только один поток (на блокирующем socker.Receive). Остальные потоки, если им становится нечего делать, засыпают на время от 4 до 50 миллисекунд, потом просыпаются и перепроверяют не надо ли чего-нибудь сделать, периодически кое-что делают.

То есть все сразу могут уснуть только по повелению сборщика мусора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дыра в Mono
СообщениеДобавлено: Вторник, 02 Февраль, 2010 18:37 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Кстати, я не утверждаю что ошибка именно в моновском сборщике мусора. Наверняка где-то опять память запороли, а сборщик мусора из-за этого зациклился. Например, летом прошлого года во времена Mono 2.4.2 эти монистые-гении память портили (медицинский факт), в 2.4.2.3 исправили. А в 2.4.3 значит опять двадцать пять. Сейчас эти монстры уже выпустили версию 2.6.1 надо будет пробовать её.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дыра в Mono
СообщениеДобавлено: Вторник, 02 Февраль, 2010 18:45 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
А Вы что, можете это воспроизвести?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дыра в Mono
СообщениеДобавлено: Вторник, 02 Февраль, 2010 19:07 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Порчу памяти в моно 2.4.2 я воспроизводил регулярно после того как написал симулятор большой нагрузки (при малой нагрузке ждать падения в среднем надо было часов 6-12, хотя могло и через 20 минут упасть).

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB