Пять дней назад мы открыли Ekurhive — нашу сеть доверия для агентов ИИ — для внешних узлов. На этой неделе, выполняя плановое обслуживание нашего набора тестов, мы обнаружили кое-что, о чем хотим сообщить заранее. Подмножество наших тестовых файлов pytest использовало setu...
Пять дней назад мы открыли Ekurhive — нашу сеть доверия для агентов ИИ — для внешних узлов. На этой неделе, выполняя плановое обслуживание нашего набора тестов, мы обнаружили кое-что, о чем хотим сообщить заранее.
Что случилось
В подмножестве наших тестовых файлов pytest используется setup_module(), перехватчик, который pytest запускает перед любым приспособлением в файле, включая приспособления изоляции, которые мы уже написали, чтобы не допустить запуска тестов. Во время проверки этот пробел позволил двум тестовым файлам писать непосредственно в нашу действующую базу данных: они создавали соединения, запускали перерасчет доверия и сбрасывали оценки доверия на реальных узлах.
Мы поймали его во время полной проверки не потому, что нас что-то отправило на пейджинг. Ничего не разбилось. Служба не спала все время. Именно поэтому об этом и стоит написать — этот класс ошибок по своей природе бесшумный.
Что мы обнаружили, когда на самом деле посмотрели
Расследование зашло дальше, чем мы ожидали. Восстановление из нашей резервной копии, предшествовавшей инциденту, должно было быть исправлением — за исключением того, что когда мы проверяли содержимое того, что мы восстановили, а не только количество строк, мы обнаружили, что «реальная» историческая активность, которую мы думали, что у нас была (история ретрансляции, результаты доверия), сама по себе уже была тестовыми приспособлениями, накопленными за недели, некоторые из