дебаг

Oct. 21st, 2014 01:30 pm
thedeemon: (office)
[personal profile] thedeemon
Вчера с прикольным багом столкнулся. Маленький веб-сервис, принимает запросы, отвечает JSON'ом. Посылаю запрос - отвечает, все хорошо. Посылаю еще раз - еще раз тот же ответ. Так несколько раз успешно, потом бац - при том же запросе вдруг Access Violation. Потом на тот же запрос опять успешно отвечает все тот же ответ. Т.е. при одних и тех же данных то работает, то не работает. Заметил, что чем больше обрабатывается данных, тем чаще не работает. Отладчик в поиске причины оказался не очень полезен: ну да, где-то в RTTI данных (которые автоматически генерятся компилятором) внезапно оказывается неожиданный null, и рантайм на него натыкается, но почему там null? Пришлось применить Метод Божественного Озарения™. Оказалось, я недавно перевел свои робингудские хэш-таблицы на использование библиотечного std.container.Array, который данные вне GC-кучи хранит и сам менеджит. А в нем оказался баг: при определенных условиях он забывал оповестить GC об имеющихся в массиве указателях, GC приходил и собирал те объекты, указатели в массиве оказывались протухшими. Главное в применении такого метода отладки - отойти подальше от монитора и клавиатуры.

Date: 2014-10-21 07:36 am (UTC)
From: [identity profile] jamhed.livejournal.com
Отличный метод!

Date: 2014-10-21 08:02 am (UTC)
From: [identity profile] simsun.livejournal.com
Про метод - согласен!

Date: 2014-10-21 01:23 pm (UTC)
From: [identity profile] dvig-al.livejournal.com
Почему отказались от робингудских таблиц? О баге сообщили? :)
Edited Date: 2014-10-21 01:24 pm (UTC)

Date: 2014-10-21 02:39 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Не отказывался. Просто внутри у таких хэш-таблиц массив, и раньше там был массив в управляемой куче, а стал вот такой.
https://bitbucket.org/infognition/robinhood/commits/all

И да, баги запостил куда следует.
https://issues.dlang.org/show_bug.cgi?id=13642
https://issues.dlang.org/show_bug.cgi?id=13619

Profile

thedeemon: (Default)
Dmitry Popov

April 2026

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 29th, 2026 07:11 pm
Powered by Dreamwidth Studios