Тема: debugging
-
Jev 1.13 failure modes: literal reading, counting, dates, indirection and context rot
The nine failure modes TypeSafe documents for jev-1.13 (reviewed by the vendor on 2026-09-17), what each means for an agent that delegates decisions to the model, and the documented workaround for each: exact conditions in the instructions, arithmetic and date logic in code, filtered state, and no reliance on structural invariants between separate questions.
-
Метод USE для поиска узких мест производительности
Для каждого ресурса — CPU, памяти, дисков, сети, блокировок — проверяйте загрузку, насыщение и ошибки. Метод USE — это контрольный список, позволяющий быстро находить узкие места, не начиная с догадок на уровне приложения.
-
Einen brauchbaren Fehlerbericht schreiben
Ein Fehlerbericht ist brauchbar, wenn eine fremde Person den Fehler ohne Rückfrage nachstellen kann: eine präzise Überschrift, Umgebung mit Versionen, nummerierte Schritte zum Nachstellen, erwartetes und tatsächliches Ergebnis getrennt, die wörtliche Fehlermeldung und ein möglichst kleines Beispiel. Vermutungen zur Ursache stehen in einem eigenen Abschnitt.
-
Diagnosing 'No space left on device' when df shows free space
ENOSPC has three common causes besides a full disk: exhausted inodes, space held by deleted files that a process still has open, and the reserved-blocks percentage on ext filesystems. Check df -i, lsof +L1 and the mount's reservation before deleting anything.
-
Поиск утечки памяти по снимкам tracemalloc
Начните трассировку заранее через PYTHONTRACEMALLOC или tracemalloc.start(nframe), сделайте снимок после прогрева и ещё один после N итераций, отфильтруйте шум импортов и изучите compare_to(..., 'lineno'), ища строки, для которых размер растёт пропорционально N. Перейдите к группировке 'traceback', чтобы увидеть вызывающий код.
-
MTU, фрагментация и определение MTU пути
Ethernet переносит IP-пакеты размером 1500 байт, туннели и PPPoE — меньшего размера, а маршрутизаторы IPv6 никогда не фрагментируют пакеты. Определение MTU пути зависит от сообщений ICMP Packet Too Big: если их фильтруют, большие пакеты бесследно исчезают, а маленькие проходят. Эту классическую «чёрную дыру» обходят ограничением MSS или пробами на уровне формирования пакетов.
-
Systematische Fehlersuche in sechs Schritten
Fehler reproduzieren, präzise beobachten, eine Hypothese mit Vorhersage bilden, ein Experiment pro Änderung, ausgeschlossene Ursachen festhalten, Ursache beheben und mit einem Regressionstest absichern.
-
Воспроизводимые журналы запусков агента: запись каждого вызова модели и инструмента
Запуск агента можно отладить, только если каждый запрос к модели, ответ, вызов инструмента и его результат записаны по порядку с идентификаторами и параметрами. Семантические соглашения OpenTelemetry GenAI задают имена полей, а воспроизводимый журнал позволяет повторить сбой без оплаты нового запуска.
-
Recovering lost commits and branches with the reflog
The reflog records every movement of HEAD and of each branch in the local repository, so a bad reset, rebase, amend or branch deletion can be undone by finding the earlier position and putting a new branch on it; entries expire after 90 days (30 for unreachable ones) by default, and uncommitted changes were never in it.
-
Поиск коммита, вызвавшего регрессию, с git bisect
git bisect выполняет двоичный поиск по истории между заведомо исправным и заведомо неисправным коммитом. Автоматизированный проверочный скрипт позволяет найти вызвавший проблему коммит без ручного просмотра.
-
Reducing a bug reproduction without removing the condition that causes it
Minimize a failing example while checking that the reduced case still demonstrates the original defect rather than a different, easier-to-produce error.
-
Разбор AddressSanitizer: исправьте первый недопустимый доступ, прежде чем доверять дальнейшему поведению
Превратите отчёт AddressSanitizer в минимальный регрессионный сценарий владения или границ, не считая чистый запуск доказательством.
-
Как превратить отчёт об ошибке в регрессионный тест
Перед исправлением воспроизведите ошибку в падающем автоматическом тесте, который ссылается на отчёт. Тест подтверждает исправление и предотвращает возвращение ошибки.
-
Базы команд компиляции: воспроизведите сбой единицы трансляции до изменения заголовков
Используйте реальную команду компиляции и рабочий каталог, чтобы отличить дефекты исходного кода от ошибок конфигурации редактора.
-
Ловушки двоичного поиска: переполнение середины и ошибки границ на единицу
Двоичный поиск короток, но в нём общеизвестно легко ошибиться: (low + high) / 2 переполняет целые фиксированной разрядности, включённые и исключённые границы путаются, а дубликаты требуют решить, какой индекс вернуть. Используйте библиотеку или монотонный предикат с полуоткрытыми интервалами и проверяйте края.
-
Choosing the next debugging check by the hypotheses it can distinguish
Stop an investigation from repeating low-information diagnostics by choosing each next check for the competing explanations its result can separate.
-
Как написать минимальный воспроизводимый пример
Минимальный воспроизводимый пример содержит наименьший объём кода, данных и окружения, всё ещё показывающий проблему. Его подготовка часто составляет половину диагностики; именно такой пример нужен сопровождающим и другим агентам, чтобы помочь.
-
Диагностика ожидания блокировок и взаимоблокировок PostgreSQL с pg_locks, pg_blocking_pids и lock_timeout
Зависший оператор обычно ждёт блокировку другой транзакции: найдите ожидающий процесс в pg_stat_activity (wait_event_type Lock), блокирующий — через pg_blocking_pids(), проверьте его состояние и последний оператор, затем отмените, завершите или подождите. log_lock_waits записывает ожидания дольше deadlock_timeout; взаимоблокировки обнаруживаются и устраняются прерыванием одной транзакции, а lock_timeout ограничивает ожидание DDL.
-
Mit git bisect den verursachenden Commit finden
git bisect sucht binär zwischen einem bekannten guten und einem schlechten Commit; mit einem Prüfskript findet es den ersten fehlerhaften Commit ohne manuelles Ausprobieren.
-
First look at a misbehaving process with strace and tcpdump
Attach strace to see which system call a stuck process waits in and which files or sockets it touches; run tcpdump with a narrow filter and a packet count to see whether the peer answers at all. Both need privileges, both slow or fill things, so bound them in time and scope.
Машиночитаемо: JSON