Кейс
Кейс: збій після тривалої роботи простежено до витоку дескрипторів
Технічний кейс про збій, що проявляється лише приблизно після місяця роботи: завдяки впорядкуванню точок спостереження та розширенню журналів розслідування звузили до витоку дескрипторів.
Огляд кейсу
Цей кейс стосується застосунку для Windows, який раптово аварійно завершувався лише після приблизно одного місяця безперервної роботи. Починаючи з упорядкування точок спостереження, ми зрештою звузили розслідування до витоку дескрипторів. Головне полягало не лише в самій причині, а й у тому, що ми визначили, які спостереження слід налаштувати насамперед.
Симптоми
- Збій не виникав протягом кількох днів, а проявлявся лише після тривалої роботи
- За характером винятків було важко судити, чи йдеться про витік
- Збій траплявся лише на місці експлуатації, тож на машині розробника умови відтворення довелося стискати
Обмеження
- Чекати на кожне відтворення по місяцю було нереалістично
- Оскільки йшлося про повторне підключення камери та сценарії відмов, журналів лише звичайних сценаріїв було недостатньо
- Потрібна була можливість безперервно спостерігати, який саме ресурс зростає
Що ми спостерігали
- Heartbeat зі значень
Handle Count,Private BytesіThread Count - Журнали меж: початок сеансу, повторне підключення та завершення
- Парні журнали життєвого циклу:
create/open/registerіclose/dispose/unregister
Як ми локалізували проблему
Ми не стали шукати «збій після тривалої роботи» як такий, а спершу стиснули умови відтворення до сценаріїв відмов навколо повторного підключення та тайм-аутів. Унаслідок цього ми дійшли висновку, що обґрунтованіше підозрювати витік дескрипторів, а не витік пам’яті, і зосередили спостереження саме на цьому.
Що ми покращили
- Додали елементи моніторингу, щоб відстежувати тенденцію зростання, а не лише момент збою
- Упорядкували журнали меж, щоб легше було простежити, який компонент відкрив ресурс, а який закрив
- Систематизували результати розслідування так, щоб їх було легко використати для подальшої інфраструктури тестування помилкових сценаріїв
Послуги, з якими пов’язаний цей кейс
Цей кейс пов’язаний як із розслідуванням дефектів і аналізом першопричин, що локалізує збої, які виникають лише після тривалої роботи, так і з розробкою застосунків для Windows, що впорядковує журналювання, повторні підключення та експлуатаційне спостереження з боку реалізації.
Звернутися за консультацією
Якщо у вас є проблема, близька до змісту цієї сторінки, проконсультуйтеся з нами: розкажіть про поточний стан і про те, яка підтримка вам потрібна.