tgoop.com/gdb_dbg/24
Last Update:
А был ли крэшлог? (часть 1)
В разработке рантайма есть такая интересная особенность: часто, когда коммитаешь какие-то серьезные правки, случается тестопад. Ночную сборку начинает лихорадить: совершенно разные тесты падают с непохожими друг на друга развалами (у тебя локально, конечно, все работало), тикеты в багтрекере множаться с пугающей скоростью, а QA отдел спускает на тебя всех собак. Это происходит не потому, что разработчики рантайма такие безалаберные, совсем наоборот: мы обычно параноим и гоняем огромное количество тестов перед коммитом. Просто рантайм... это рантайм. Огромная большая связность между различными модулями, постоянный эффект бабочки (см. папку бога), недетерминированность из-за GC и зависимость от порядка исполнения. В общем, у рантайма есть свое настроение, так что надеяться на коммит больших правок без последствий - это довольно наивно.
И тут ничего не остается, кроме как спокойненько разбирать развалы, классифицировать их и оперативно изготавливать фиксы. Вот и пару месяцев назад я своим очередным коммитом устроил маленький армагеддон. Неприятно, но дело привычное: разгребал проблемы, изготовил за день основные фиксы (все по мелочи), на следующий день все тесты и сборки позеленели, тикеты закрыты, Q&A отдел доволен, начальство тоже. Но какая-то неприятная, вертящаяся на задворках сознания мысль не давала мне покоя. Во время классификации проблем один крэшлог не попал ни в одну из категорий проблем. Он был... странным. Судя по нему, происходила какая-то совсем уж дичь, поэтому я решил его отложить, починив сначала более очевидные проблемы. В теории, конечно, это могла быть какая-то странная наведёнка из-за остальных проблем (такое часто случается), но не должны были мои фиксы это чинить! Да и вообще такой проблемы не должно было быть в природе!
Сам странный развал, конечно, больше не воспроизводится. Соответственно тикета на него нет. Его починка не запланирована, новые таски ждут. И в этот самый момент в голове появляется такой сладкий шепот Саурона, который говорит: "Да забей, ну ерунда... мало ли почему был развал? Наведёнка, 100%. Ты уже все починил, пошли дальше. А был ли вообще крэшлог? Ты ведь был очень уставшим, показалось тебе, иди отдохни". Так мозг пытается защититься, восстановить понятную и комфортную ему картину мира. Очень важно в этот момент не вестись, найти этот старый крэшлог и начинать копать.
Что я и сделал, раскопав абсолютно несвязанную с моими правками, но прекрасную проблему, про которую сейчас расскажу ↓
#дух_машины
BY Алло, это отладочная?
Share with your friend now:
tgoop.com/gdb_dbg/24