Что может вызвать утечку маркера контекста безопасности?

У меня есть собственное приложение win 32, которое во время нагрузочного тестирования в качестве HTTP-сервера вызывает увеличение рабочего набора с течением времени. Нет утечек памяти (подтверждено отслеживанием приватных байтов в PerfMon и использованием FastMem для мониторинга использования памяти во время выполнения). Примечание: нагрузка постоянная, около 50 одновременных подключений, поэтому значительных отклонений нет.

Используя Process Explorer, я сузил проблему до утечек из-за обработки токенов. Я также использовал madKernel, чтобы сообщать о количестве использования дескрипторов, что также подтверждает, что маркеры токенов продолжают увеличиваться.

Чтобы быть точным, я вижу следующее в Process Explorer:

Все маркеры маркеров, показанные в Process Explorer, имеют одинаковое имя: 'Doug-M46\Doug:ff739'):

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

Я использовал AQTime, чтобы попытаться отследить источник утечки, но мне не повезло. На данный момент я рассматриваю перехват всех возможных вызовов API, которые могут вызвать эту утечку, поэтому я могу отследить ее, но я бы предпочел избежать такой крайней меры.

Мое приложение использует компонент HTTP-сервер ICS в отдельном потоке для обработки запросов HTTP для моего приложения (32-разрядное приложение, Delphi XE-2, ICS V8 Gold, Windows 7 Professional Build 7601: SP1).

Любое понимание причины этих утечек будет очень цениться, так как я уже давно пытаюсь выследить их.

Рекомендации:

Что может вызвать утечку из секции?

0 ответов

Другие вопросы по тегам