Почему параллельный сборщик мусора иногда вызывает исключение ExecutionEngineException (согласно MSDN)?

Согласно MSDN ], есть "подсказка" о том, что приложение .NET, работающее под большой нагрузкой с одновременной сборкой мусора (либо , либо не указано, так как это поведение по умолчанию) может вызывать исключение ExecutionEngineException. Известно ли кому-нибудь о статье в Microsoft KB или другом источнике, в котором содержится дополнительная информация по этому поводу?

Мы испытали это непосредственно с приложением службы Windows на основе NHibernate 3.2, которое неизменно дает сбой через несколько часов работы. операции. Нам удалось отследить исключение в вызове ISession.Flush (). л.

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

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

12
задан Nick Jones 23 September 2011 в 17:42
поделиться