Welcome
Sign in to start your session
Login
Login
[app info]
Brief app info: ENV: [DEV] commitId: 7f9cc4acdd530b8a592a42af2935f8c90651a9f5 branch: develop build date: 2026-10-08T10:39:54Z build version: 2026.08.06.1-SNAPSHOT commit message: #38810 Чистить брошенные тестовые контейнеры после прогона Контейнеры создаются с withReuse(true), чтобы следующий прогон не строил схему заново. Это же выводит их из-под Ryuk, штатного сборщика мусора Testcontainers, поэтому удалять их некому. Политики перезапуска у них нет, так что перезагрузка машины их гасит, а поиск для переиспользования находит только запущенные контейнеры - следующий прогон создаёт новый и бросает старый навсегда. Один брошенный контейнер на образ на каждую перезагрузку: на одной машине накопилось 7 поколений Redis, 7 Postgres и 9 Kafka. Что это именно поколения, а не разные конфигурации, видно по метке: у всех семи Redis один и тот же хеш переиспользования, а даты создания совпадают с датами загрузок системы. Слушатель JUnit Platform регистрируется через ServiceLoader и срабатывает один раз после всего плана тестов. Ходит клиентом Docker, который Testcontainers уже приносит с собой, поэтому ни новой зависимости в рантайме, ни вызова консоли. Три решения стоит знать. Чистка намеренно не привязана к зелёному прогону: удаляются только контейнеры в состоянии exited, они мертвы в любом случае, а живой переиспользуемый под фильтр не попадает; привязка к успеху означала бы, что мусор копится именно после красных прогонов, когда и так воюешь с окружением. Любая ошибка глотается - сборка не должна краснеть из-за уборки. И метка вынесена в константу, потому что уборщик, молча не находящий ничего, хуже отсутствующего. junit-platform-launcher добавлен в тестовые зависимости: surefire кладёт его на classpath рантайма, но не компиляции. В CI переиспользование не включено, там Ryuk убирает за собой сам и слушатель отрабатывает вхолостую. Проверено на живой машине: 6 брошенных контейнеров удалены, 3 живых целы, посторонние остановленные контейнеры не тронуты. UPTIME: 0d 10h 8m 43s Git log: 89de3... | 2026-10-08T12:46:12+03:00 | Rodion | #38795 Антифрод рефералки: поправить счётчики в... 01912... | 2026-10-08T11:51:08+03:00 | Rodion | #38795 Антифрод рефералки: отклонять только при... 54fcd... | 2026-10-07T16:07:11+02:00 | nikita | #36924 c227d... | 2026-10-07T15:57:18+02:00 | nikita | #38800 dc4da... | 2026-10-07T16:01:43+03:00 | Rodion | #38190 Кривой RM_STATIC_KEYS больше не роняет с... 4b0c8... | 2026-10-06T19:31:27+03:00 | Rodion | #38617 Руководство оператора: точнее про антифр... b3c62... | 2026-10-06T19:03:10+03:00 | Rodion | #38792 Карточка допуска: сброшенный снимок боль... d15ac... | 2026-10-06T16:45:09+02:00 | nikita | #38794 e1abb... | 2026-10-05T18:04:44+02:00 | nikita | #38777 75b46... | 2026-10-05T15:10:01+02:00 | nikita | #38777
copy to clipboard