jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5916

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

Короче ответ -- никак нельзя, нужно пилить агент. В чем проблема подмонтировать файлик к контейнеру -- загадка.

Читать полностью…

pro.jvm

Я не передам путь к файлу, который я не могу закинуть на сервер

Читать полностью…

pro.jvm

jvmti агент это so-шка, путь к файлу там в параметры передашь, код на плюсах сгенерил o3 за пару секунд

Читать полностью…

pro.jvm

Кажется без агента никак, там это несложно делается, а почему агент не хочется приаттачить?

Читать полностью…

pro.jvm

Thread.currentThread().setUncaughtExceptionHandler(
нагуглил вот такое, если известен плюс минус поток который падает и кто его стартует

Читать полностью…

pro.jvm

послать процессу SIGQUIT :)
JVM тогда выплюнет стектрейсы в stderr

Читать полностью…

pro.jvm

вопрос в том, с какой стороны его вызыают, вангую что изнутри, представить что есть нечто снаружи, что вытесняет потоки таким образом фантазии не хватает

Читать полностью…

pro.jvm

Это скорее отсекает какую-то проблему в окгружении снаружи

тогда надо понять то ли кто-то хочет изнутри прерывать выполнение треда, то ли реально кто-то в jvm отправляет вызов (но маловероятно)

Читать полностью…

pro.jvm

Interrupt по логам видно?

Читать полностью…

pro.jvm

Даже если не будет, то в лучшем случае вы сможете получить pthread_id, и то не факт

Читать полностью…

pro.jvm

Стек пробить интерратом вообще хороший челлендж

Читать полностью…

pro.jvm

как вариант, на старте в логи распечатать системно знанимые настройки окружения: кол-во тредов, и объем памяти на тред.

Читать полностью…

pro.jvm

В executor свой threadfactory не подсунуть?

Читать полностью…

pro.jvm

Его мало переопределить, его надо подсунуть пулу

Читать полностью…

pro.jvm

Агентом наверное самое эффективное решение, найти вызов и подменить его на свой легко

Читать полностью…

pro.jvm

Я могу только куролесить собственным джарником

Читать полностью…

pro.jvm

Все это в ключи запуска java, да и можно к запущенному приаттачить. Короче говоря, не страшная это вещь, как-то же asyncprofiler народ пускает, а это по факту такой же jvmti агент

Читать полностью…

pro.jvm

Потому что у меня нет прямого контроля над хостом, сборкой контейнера, параметрами запуска.

Ну и ещё я боюсь веселья бутстрап-уровня, у нас кажется стдаут не собирается, нужен сконфигурированный логгер, логгер должен грузиться бутстрапным класслоадером, у нас всё валяется отдельными джарниками, если изменить командную строку ещё выглядит жизнеспособным, то запихнуть туда отдельный uberjar прямо нереально, это всё так или иначе выльется в пятнадцатиминутные (попробовал запустить - сломалось - поправил строчку - запустил снова) сценарии на пару дней в сумме

Читать полностью…

pro.jvm

Он не падает там интеррапт

Ничего это не сделает

Это покажет, где поток был в момент интеррапта, а не кто его интерраптнул, интерраптит кто-то другой

Читать полностью…

pro.jvm

А какой смысл от рандомных стектрейсов?

Читать полностью…

pro.jvm

Да нет никакого такого вопроса

Вопрос просветить меня насчёт непримитивных и плюс-минус профессиональных, что ли, опций получения трейса, чтобы я перестал в чем-то быть тупым

Читать полностью…

pro.jvm

Был бы какой-то особый интеррапт, который манифестируется по-другому?

Читать полностью…

pro.jvm

Да, но как это может изменить ситуацию?

Читать полностью…

pro.jvm

Это уже спинофф с челленджем загазлайтить отдельный тред до СО и не более

Читать полностью…

pro.jvm

Спустить вниз (поднять? Уже не помню, куда стек растёт) гард пейджи перед интерраптом

Но на чистой джаве нереализуемо, и в целом хак, СО будет за счёт других механизмов, и, возможно, до интеррапта

Читать полностью…

pro.jvm

Ребят, какая память в стеке, какие системные вызовы, там просто классический интеррапт

Читать полностью…

pro.jvm

Может памяти в стеке не хватает?
Прибиваь поток через системные вызовы как-то неоптимально и странно, обычно нельзя новый создать из-за настроек ОС, но чтобы прибивать, ну такое...
Да и критерий прибития должен быть какой-то разумный

Читать полностью…

pro.jvm

Если бы там все руками делалось, было бы проще, но тут половину фреймворка придется переопределить

Я конечно тоже рассматриваю, но хочу айратнуть

Читать полностью…

pro.jvm

Если тред убивают через системные вызовы ОС, то все усложняется. Если через java api, отнаследуйся от thread, переопредели interrupt и бросай исключение с перехватом и выводом стектрейса - получишь ответ на вопрос кто прерывает

Читать полностью…

pro.jvm

Какие есть способы узнать, кто интерраптит тред (= получить стектрейс)?

Есть приложение за семью джампхостами в облаке, там кто-то даёт треду по башке (скорее всего, по таймауту), надо найти причину/виновника. Прямой поиск по кодобазе ничего явного не выдал, rt.jar подменить не могу, с инструментацией не факт что получится подрубить агента.

Читать полностью…
Subscribe to a channel