TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.35K subscribers
Post #8689 355
Хаотичный планировщик помог найти ошибку в тесте JFR

В январском разборе Йоханнес Бехбергер исследовал JDK-8366486: тест CPU-time sampling обычно проходил, хотя после первой записи останавливал поток, создававший нагрузку.

Вторая запись могла получить событие от внутреннего потока JFR Periodic Tasks. Это маскировало ошибку самого теста. Успешный прогон ещё не означал, что проверяется нужный сценарий.

Автор использовал concurrency-fuzz-scheduler: написанный на Java прототип планировщика Linux меняет расписание потоков случайными паузами. С ним ошибочную ветку удалось воспроизвести быстрее, а исправленную — отдельно проверить повторными запусками.

Это конкретный кейс и экспериментальный инструмент, а не универсальный детектор гонок. В статье автор также объясняет, почему причина оказалась ошибкой проверки, а не просто проблемой синхронизации.

Разбор Бехбергера и устройство теста

#java #jvm
  • 👏 1
More from @a_cup_of_java
  1. Oct 13, 2026Spring Boot Actuator: свои проверки здоровья и доступ к диагностике В Spring Boot 4 провер…
  2. Oct 13, 2026Развёрнутое пояснение: 1. Spring создаёт OrderService с областью singleton: этот экземпляр…
  3. Oct 13, 2026Post #8687
  4. Oct 12, 2026Переход на Jackson 3 в Spring Boot 4: настройка JsonMapper и изменения JSON Spring Boot 4…
  5. Oct 12, 2026🧑‍💻 Какие навыки помогают вам в разработке в 2026 году? Что вы чаще используете в работе…
  6. Oct 12, 2026Аварийные отчёты HotSpot: чтение hs_err и удаление чувствительных данных При падении JVM о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →