powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Блокировка потоков
114 сообщений из 114, показаны все 5 страниц
Блокировка потоков
    #40063130
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет
Есть кусок кода- который выполняется в многопоточном режиме- в чем суть
Код не менялся,ничего не менялось- лишь нарастал объем данных ,которые этот код обрабатывал и вот в какой то момент я обнаруживаю что результат работы кода - условно посчиаем его в записях в бд стал 900 к ,вместо положенных 1.7 млн
иду на сервер - смотрю что там - там на 100% загружены 10 ядер
при этом прилоежние работу не продолжает но и не стопается ( добавил специально логи )
очень похоже на дед лок.
прогнал все это дело 4 раза - всегда блочится похоже в одном и том же месте тоесть грубо говоря на 900 к записи все дедлочится и привет.Но разве такое возможно чтобы дедлок был всегда идентичен- тоесть работает приложение все норм и бац на 91231212 записи все блочится и на следующий прогон именно на том же порядковом номере .
Есть еще предположение что приложение упирается в лимиты по памяти и какие то потоки не могут получить свои данные изза этого и все так же виснет хз

в логах ошибок нет ни в приложении,ни от серевера,в логах бд тоже ничего
по дедлоку тоже вопрос - почему раньше все работало - а сейчас нет- причем ладно бы изза увеличения даных это было где то в конце - нет же - на середине блокируется все
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063144
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дедлок - это взаимная бокировка. А блокировка не потребляет 100% CPU (если конечно она не на CAS'ах).
Для начала лучше подключись через jvisualvm к приложению и сними семплирование, или используй JFR, ну или по старинке - по тред-дампам посмотри где потоки чаще всего висят.
А может и вообще что все эти 100% CPU - это garbage collector (это тоже должно быть видно через метрики или тот же JMX).


Ну и ради эксперимента попробуй "91231212" запись обработать независимо, может дело в данных
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063151
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv



Ну и ради эксперимента попробуй "91231212" запись обработать независимо, может дело в данных

это рандом номер- вычислить на какой именно записи происходит не представляется возможным.
вообщем при старте процесса задйствованы 10 ядер- и когда происходит нечтно похожее на дедлок - то все 10 ядер так и остаются загружены на 100% при этом дальше процесс уже не идет
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063209
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да добавьте еще пару петабайт памяти, у вас же крутая контора вроде? не то что наши Рога и Копыта

При дэдлоке обычно cpu не жгется, по симптомам больше похоже на livelock. GC тоже врядли, ибо он рано или поздно все же умер с OutOfMemory. Что-то более конкретное сказать не представляется возможным, ибо задача формулируется - у меня там чото не работает, я хз чо и как, но не охота выставлять себя дауном, поэтому вверну пару умных слов - потоки, дедлок, блокировки.

Совет насчет VisualVm либо профайлера - верный, нужно снять треддамп и посомтреть чем заняты потоки, от этого и плясать. Без кода врядли прогресс будет в решении проблемы
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063213
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Всем привет
Есть кусок кода- который выполняется в многопоточном режиме- в чем суть


Вы как поток организовываете? Это контролируемый процесс типо pool executor или просто как на душу ляжет есть данные открываете новый thread?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063224
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если 1.7 превратилось в 900 то это еще не факт что виновата мультипоточность. Это может быть просто баг.

Тоесть нужно искать сначала простое объяснение вещам. В многопользовательской среде база тоже не обязана
выдавать одно и тоже число data-rows. В базе бывают плановые ETL процессы например.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063232
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
>иду на сервер - смотрю что там - там на 100% загружены 10 ядер
===
В прошлый вопрос вы всех подняли на уши а у вас БД встала.
В этот раз каспер начал проверять диски а вы опять всех на уши.
Вам не доходит что надо набирать информацию...логи...дампы...а не гадать на гуще.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063233
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
>прогнал все это дело 4 раза - всегда блочится похоже в одном и том же месте тоесть грубо говоря на 900 к записи
=== то же самое что и в первый раз - БД исключили что она умирает на 900к записей?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063235
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Если 1.7 превратилось в 900 то это еще не факт что виновата мультипоточность. Это может быть просто баг.

Тоесть нужно искать сначала простое объяснение вещам. В многопользовательской среде база тоже не обязана
выдавать одно и тоже число data-rows. В базе бывают плановые ETL процессы например.

+1
Какая девичья память у ТС
Две недели назад был такой же вопрос.
Memory leak
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063259
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот интересно у меня на одном из проектов ПМД вколотили. так оно всегда теперь ругается когда начинаешь там сам тредами жонглировать. через экзекутор там или еще хуже.

мне кажется вполне осбосновано.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063262
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
вот интересно у меня на одном из проектов ПМД вколотили

вот интересно, все поняли твои три буквы ПМД?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063361
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergunka
asv79
Всем привет
Есть кусок кода- который выполняется в многопоточном режиме- в чем суть


Вы как поток организовываете? Это контролируемый процесс типо pool executor или просто как на душу ляжет есть данные открываете новый thread?

Код: java
1.
Executors.newWorkStealingPool(количество потоков)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063363
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,
>прогнал все это дело 4 раза - всегда блочится похоже в одном и том же месте тоесть грубо говоря на 900 к записи
=== то же самое что и в первый раз - БД исключили что она умирает на 900к записей?

бд не умирает ,она,по крайне мере в логах все норм
ну и до обновления данных - все было норм- спокойно держала нагрузку такую и принимала от 1,5 и выше записей
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063365
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Если 1.7 превратилось в 900 то это еще не факт что виновата мультипоточность. Это может быть просто баг.

Тоесть нужно искать сначала простое объяснение вещам. В многопользовательской среде база тоже не обязана
выдавать одно и тоже число data-rows. В базе бывают плановые ETL процессы например.

я с тобой согласен что если бы 1.7 просто превратились в 900 к то вопросов бы я не задавал тут- проблема в том,что приложение не завершает свою работу ,при этом ядра ,нагружены на 100ку
очень похоже на какую то блокировку потоков ,но как тут выше отписались при дедлоке ядра не грузятся на 100%
а тут картина такая что именно на 100ку все загружено .-Отпускает только тогда когда ты стопаешь приложение.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063367
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
>бд не умирает ,она,по крайне мере в логах все норм
= ты выше сказал что в логах нет exception.
Это все?
Если бд тормозит и виснет то в логах будет тоже чисто.
Не логично?
Просто заремуй запись в бд и проверь опять.
2. Что значит до обновления данных. Странная фраза по отношению к бд.
Есть CRUD это 4 операции. А у тебя что за фраза?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063368
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
mayton прав а ты нет.
Просто меньше болтай и исключи влияние бд. Вот и всё
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063370
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

>Отпускает только тогда когда ты стопаешь приложение.
== а кроме стоп крана что умеем? Профиоировать умеем, когда определяют какой метод занимает 90 процентов времени.
Или какие потоки спят.
Логи дядя будет приводить?
Или ты в отпуске?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063371
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
вот интересно у меня на одном из проектов ПМД вколотили. так оно всегда теперь ругается когда начинаешь там сам тредами жонглировать. через экзекутор там или еще хуже.

мне кажется вполне осбосновано.

дело в том,что код то не менялся - он работал и работал себе и тут новая дата подъехала и привет

суть вообще этого приложения
перегон данных из монго в постргрес

Я склонялся к дед локу ,но раз при дедлоке не может быть 100% загрузки ядер ,буду сейчас вычленять опытным путем ,какой именно элемент данных вызывает это состояние приложения.

пс.я б собственно тему не создавал ,но каждый прогон - это 4 часа - может тут кто мысль подкинет)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063372
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,

>Отпускает только тогда когда ты стопаешь приложение.
== а кроме стоп крана что умеем? Профиоировать умеем, когда определяют какой метод занимает 90 процентов времени.
Или какие потоки спят.
Логи дядя будет приводить?
Или ты в отпуске?

петро какой метод занимает 100 я тебе и без профилирофчика скажу - тот который и есть многопоточный)
я туда накинул маркеров - так вот все идет хорошо ,где то 900к элементов обрабатываются и далее происходит что то ,что не дает никаких ошибок ни в бд,ни в приложении,ни на серваке,при этом по маркерам я вижу что метод не закончил свою работу
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 }
    log.info("Ждем потоки");

    executorService.shutdown();
    executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);

    if (!executorService.isTerminated()) {
      executorService.shutdownNow();
    }
    log.info("Работа завершена");
  }


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

мб это livelock
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063373
Для поиска проблемы нужно всего две вещи:
1. Определить какие потоки грузят
2. И на какой строке

Я так понимаю что с 1ым проблем нет. Если есть, то в Линухе можно выводить потоки и насколько они загружают CPU с помощью top (в интернетах ищем по linux lightweight processes). Там же мы можем увидеть ID потока, который потом можно сопоставить с тем что выводит thread dump. Они правда выводят в разных системах исчисления, нужно будет пересчитать.

Ну и на какой строке можно легко определить все тем же thread dump'ом:
Код: powershell
1.
jcmd <PID> Thread.print



Ну а там уже по строке кода должно быть понятно. Если не понятно - нужно нам предоставить кусок кода который грузит. Может оказаться все тот же GC как уже предлагали выше, это будет свидетельствовать что создается слишком много объектов. Используется ли Hibernate для работы с БД и, если да, очищается ли его сессия?

Также обычно СУБД позволяют определить какие записи заблокированы, какие запросы счас выполняются и пр. Это тоже может натолкнуть на мысли.

В общем, @asv79, нужно чтоб ты хоть как-то начал диагностировать проблему. Пока звучит будто все телодвижения были нерешительны и наугад. Из вопроса даже не понятно - это java процесс вообще грузит CPU?

авторпетро какой метод занимает 100 я тебе и без профилирофчика скажу - тот который и есть многопоточный)
Нужно знать точно строку. И нужно понимать это просто java код который ходит циклами, или это системный вызов.
автордело в том,что код то не менялся - он работал и работал себе и тут новая дата подъехала и привет
Значит он всегда работал неверно, и проблема проявляется только при определенных условиях/объемах данных.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063378
авторпс.я б собственно тему не создавал ,но каждый прогон - это 4 часа - может тут кто мысль подкинет)Стоит уменьшить кол-во выделяемой памяти JVM, тогда проблема скорей всего воспроизведется раньше. Еще как вариант - увеличить кол-во потоков, но это усложнить последующий анализ.

PS: Хм.. Я не всегда могу редактировать свои сообщения?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063382
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
>который и есть многопоточный)
Я не ожидал что у тебя внутри метода нет подметодов каждый со своим временем.
)))))))
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063384
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev

автордело в том,что код то не менялся - он работал и работал себе и тут новая дата подъехала и привет
Значит он всегда работал неверно, и проблема проявляется только при определенных условиях/объемах данных.
так объем не изменился по сути 17 гиг против 17.5,а вот что то в данных не то - видимо это и есть причина сейчас буду вычленять проблему
пс.сейчас я прогоню заново и пойму хотя бы на каком элменте происходит эта проблема
ибо всегда оно в одном и том же месте- далее я сделаю прогон тех элементов которые попадают в этот пул( там 8 потоков - каждый берет в процес по элементу)
прогоню отдельно каждый из них и найду хотя бы тот элемент ,который вызывает эту проблему
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063385
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
log.info("Ждем потоки");

    executorService.shutdown();
    executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);

    if (!executorService.isTerminated()) {
      executorService.shutdownNow();
    }
    log.info("Работа завершена");


Ты боишься внутри расставить маркеры?
Тебе уже 4 мембера сказали "работай".
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063387
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,
>который и есть многопоточный)
Я не ожидал что у тебя внутри метода нет подметодов каждый со своим временем.
)))))))

все там есть,петро не мешай плиз в этой теме - дай люди со знаниями накинут варинты проблемы.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063388
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
asv79,
>который и есть многопоточный)
Я не ожидал что у тебя внутри метода нет подметодов каждый со своим временем.
)))))))

все там есть,петро не мешай плиз в этой теме - дай люди со знаниями накинут варинты проблемы.

Дак тебе выше чел сказал ЧТО НУЖНО ЗНАТЬ ТОЧНО СТРОКУ.))))))
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063389
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
авторпс.я б собственно тему не создавал ,но каждый прогон - это 4 часа - может тут кто мысль подкинет)
Стоит уменьшить кол-во выделяемой памяти JVM, тогда проблема скорей всего воспроизведется раньше. Еще как вариант - увеличить кол-во потоков, но это усложнить последующий анализ.

PS: Хм.. Я не всегда могу редактировать свои сообщения?
память тут к сожалению не причем-я тоже думал что мы упираемся в лимиты - накинул памяти и все равно состояние это возникает в одном и том же месте- я думаю это какие то проблемы с данными ,так как раньше все работало с такими же объемами и не было никаких проблем.
Тоесть если бы теория памяти была верна - мы бы при увеличении или уменьшении получали это состояние в разный момент времени- но оно всегда одно и тоже- точней не время а именно последние логи - обработка такого то элемента и привет подвисание
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063391
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС
Будет очень смешно если опять виновата бд гражданин джун.
А у вас мания преследования петро пошла).
Работай!
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063394
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Для поиска проблемы нужно всего две вещи:
1. Определить какие потоки грузят
2. И на какой строке

Я так понимаю что с 1ым проблем нет. Если есть, то в Линухе можно выводить потоки и насколько они загружают CPU с помощью top (в интернетах ищем по linux lightweight processes). Там же мы можем увидеть ID потока, который потом можно сопоставить с тем что выводит thread dump. Они правда выводят в разных системах исчисления, нужно будет пересчитать.

Ну и на какой строке можно легко определить все тем же thread dump'ом:
Код: powershell
1.
jcmd <PID> Thread.print



Ну а там уже по строке кода должно быть понятно. Если не понятно - нужно нам предоставить кусок кода который грузит. Может оказаться все тот же GC как уже предлагали выше, это будет свидетельствовать что создается слишком много объектов. Используется ли Hibernate для работы с БД и, если да, очищается ли его сессия?

Также обычно СУБД позволяют определить какие записи заблокированы, какие запросы счас выполняются и пр. Это тоже может натолкнуть на мысли.

В общем, @asv79, нужно чтоб ты хоть как-то начал диагностировать проблему. Пока звучит будто все телодвижения были нерешительны и наугад. Из вопроса даже не понятно - это java процесс вообще грузит CPU?

спасибо за развернутый овет- сейчас получу это состоние блокировки и сделаю все что вы выше описали
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063396
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из Монго в Постгрес, говоришь.

Вариант: в Постгрес в запрос передаются какие-то объекты, от которых плохеет постгресовому драйверу. Сталкивался с таким, когда из скриптов в Nashorn вызывал JdbcTemplate, и вместо джавских дат и чисел приходили nashorn-овые.

Кандидат на такой случай -- код вида statement.setObject(num, objFromMongo), когда типы bind-переменных определяются неявно.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063398
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
Из Монго в Постгрес, говоришь.

Вариант: в Постгрес в запрос передаются какие-то объекты, от которых плохеет постгресовому драйверу. Сталкивался с таким, когда из скриптов в Nashorn вызывал JdbcTemplate, и вместо джавских дат и чисел приходили nashorn-овые.

Кандидат на такой случай -- код вида statement.setObject(num, objFromMongo), когда типы bind-переменных определяются неявно.

объекты все одинаковые - тоесть если бы было не так оно бы не работало и раньше
но кому то плохееет явно - что метод не завершается ,а вот кому надо понять -так как в логах везде тишь да гладь да божья благодать
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063413
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79
пропущено...

все там есть,петро не мешай плиз в этой теме - дай люди со знаниями накинут варинты проблемы.

Дак тебе выше чел сказал ЧТО НУЖНО ЗНАТЬ ТОЧНО СТРОКУ.))))))

человек,а не ты- ты то сиди ровно и не мешай людям общаться
пс.давно пора администрации форума сделать функцию Unwanted чтобы петро забыл сюда дорогу)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063417
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
jcmd <PID> Thread.print


набрал топ - получил процесс который 900% занимает ЦПУ
команда выше не работает -
Код: java
1.
2.
3.
4.
5.
6.
Command 'jcmd' not found, but can be installed with:

sudo apt install openjdk-11-jdk-headless  # version 11.0.7+10-2ubuntu2~19.10, or
sudo apt install openjdk-8-jdk-headless   # version 8u252-b09-1~19.10
sudo apt install openjdk-13-jdk-headless  # version 13+33-1
sudo apt install openjdk-14-jdk-headless  # version 14~18-1


ни одна из этих команд не приводит к успеху
какой то конфликт с монго сервером судя по всему

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
~$ sudo apt install openjdk-8-jdk-headless
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 mongodb-org : Depends: mongodb-org-server but it is not going to be installed
               Depends: mongodb-org-mongos but it is not going to be installed
 mongodb-org-tools : Depends: mongodb-database-tools but it is not going to be installed
 openjdk-8-jdk-headless : Depends: openjdk-8-jre-headless (= 8u252-b09-1~19.10) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063421
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джаву откуда запускаешь? У нее в каталоге /bin этот jcmd должен быть.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063425
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
пропущено...

Дак тебе выше чел сказал ЧТО НУЖНО ЗНАТЬ ТОЧНО СТРОКУ.))))))

человек,а не ты- ты то сиди ровно и не мешай людям общаться
пс.давно пора администрации форума сделать функцию Unwanted чтобы петро забыл сюда дорогу)
а тут?
22298979
Долго врубался чтобы вычислить что бд виновата?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063449
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
Джаву откуда запускаешь? У нее в каталоге /bin этот jcmd должен быть.

я запускаю ctl сервис ,хз где там джава спряталась) но она точно есть ибо приложение работает
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063451
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79
пропущено...

человек,а не ты- ты то сиди ровно и не мешай людям общаться
пс.давно пора администрации форума сделать функцию Unwanted чтобы петро забыл сюда дорогу)
а тут?
22298979
Долго врубался чтобы вычислить что бд виновата?

бд тут не причем
900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %
так что иди спать конь педальная)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063459
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
пропущено...
а тут?
22298979
Долго врубался чтобы вычислить что бд виновата?

бд тут не причем
900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %
так что иди спать конь педальная)
это у тебя такая логика?
То есть, если бд начинает писать 1 запись в сек по разным причинам,
то у тебя потоки не будут тормозить что ли?
Они 1 процент ЦПУ займут?
Ну скажи хоть пару умных слов.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063467
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

не знаю как насчет jcmd
но на моем опыте обычно используется
jstack <PID> - снять тред-дамп
jmap <PID> - снять хип-дамп


Если таких команд нет, и, вдруг приложение крутится в докере - то какой образ используется?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063473
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мое имхо, что автору топика не следует пудрить мозги про дамп памяти, карту памяти, дамп кучи и т.д.
Это слишком круто для него.
Надо искать ошибку более простыми способами.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063476
автор900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %Ок, ну эт хорошо, значит локализовали что это хотя бы наше приложение. А дальше нужно искать уже точно строку кода, вполне возможно что там какой-то баг который в вечный цикл вводит приложение. Это очень быстро отыскивается с помощью thread dump'a. И этому нужно обязательно обучиться - снимать дампы это одно из первых и лучших средств траблшутинга. Поэтому лучше сразу потратить время и разобраться.
авторCommand 'jcmd' not found, but can be installed with:jcmd устанавливается вместе с JDK. Т.е. находится в JAVA_HOME/bin, ищи там. Однако в комплект JRE эта утилита не входит, поэтому если у тебя именно JRE - се ля ви. Нужно будет поставить JDK.
pavel_nvне знаю как насчет jcmd
но на моем опыте обычно используется
jstack <PID> - снять тред-дамп
jmap <PID> - снять хип-дампЭти тоже входят только в JDK, но на сегодняшний день jcmd их вытесняет. Она в себя включает эти две возможности, а также многие другие:
jcmd helpThe following commands are available:
Compiler.CodeHeap_Analytics
Compiler.codecache
Compiler.codelist
Compiler.directives_add
Compiler.directives_clear
Compiler.directives_print
Compiler.directives_remove
Compiler.perfmap
Compiler.queue
GC.class_histogram
GC.finalizer_info
GC.heap_dump
GC.heap_info
GC.run
GC.run_finalization
JFR.check
JFR.configure
JFR.dump
JFR.start
JFR.stop
JVMTI.agent_load
JVMTI.data_dump
ManagementAgent.start
ManagementAgent.start_local
ManagementAgent.status
ManagementAgent.stop
Thread.print
VM.class_hierarchy
VM.classloader_stats
VM.classloaders
VM.command_line
VM.dynlibs
VM.events
VM.flags
VM.info
VM.log
VM.metaspace
VM.native_memory
VM.print_touched_methods
VM.set_flag
VM.stringtable
VM.symboltable
VM.system_properties
VM.systemdictionary
VM.uptime
VM.version
help
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063478
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

я думаю тут коллегам больше интересно самим посмотреть тред-дамп топик стартера и пополнить свой багаж знаний (как делать не надо), чем решить конкретную проблему топик-стартера
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063486
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv,
Может быть ты и прав.
Только ТС обычно не делает то что его просят.
Поживем увидим.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063487
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
>Ок, ну эт хорошо, значит локализовали что это хотя бы наше приложение.
= не думаю что эти две цифры локализуют AppServer и исключают обе БД как проблемные.
Имхо
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063613
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Alexander A. Sak
Джаву откуда запускаешь? У нее в каталоге /bin этот jcmd должен быть.

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

Непонятно. Ты привел слово которое слишком .... слишком много раз гуглится и по нему нет
никакой конкретики.

Это оно?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
$ systemctl --help
systemctl [OPTIONS...] COMMAND ...

Query or send control commands to the system manager.

Unit Commands:
  list-units [PATTERN...]             List units currently in memory
  list-sockets [PATTERN...]           List socket units currently in memory,



Тыж понимаешь когда затаскиваешь в форум Java связи с какой-то специфичной технологии - то надо об
этом обязательно сказать.

Иначе - люди просто не знают о чем речь идет.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063618
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

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

Непонятно. Ты привел слово которое слишком .... слишком много раз гуглится и по нему нет
никакой конкретики.

Это оно?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
$ systemctl --help
systemctl [OPTIONS...] COMMAND ...

Query or send control commands to the system manager.

Unit Commands:
  list-units [PATTERN...]             List units currently in memory
  list-sockets [PATTERN...]           List socket units currently in memory,



Тыж понимаешь когда затаскиваешь в форум Java связи с какой-то специфичной технологии - то надо об
этом обязательно сказать.

Иначе - люди просто не знают о чем речь идет.

да это именно оно - приложение запускается sudo systemctl start app.service
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063621
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ну набери

Код: java
1.
systemctl status <yourapplication>



Там будут опции. Может command-line. Вот у меня например memcached показывает.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$ systemctl status memcached
&#9679; memcached.service - memcached daemon
     Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-04-18 19:08:34 EEST; 1h 31min ago
       Docs: man:memcached(1)
   Main PID: 1249 (memcached)
      Tasks: 10 (limit: 19058)
     Memory: 1.9M
     CGroup: /system.slice/memcached.service
             +1249 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid



Там и путь к скрипту старта.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063622
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
далее я начал вычленять элемент - на котором все стопорится- вроде нашел ,по крайне мере по логам - он последний берется в работу и все виснет
я значит беру этот элемент и удаляю из списка,но один хрен приложение постигает таже участь приблизительно на том же месте
тред дамп я снять не могу - как выше заметили нужен установленный jdk,а его нет и установить не дадут
что я начал делать дальше - я прогнал локально - тоесть на винде,на другой системе ,на другой версии постгрес
и опять уперся рогом ровно в тоже самое место ,что и на серваке...
при этом вообще не понятно что проиходит- так как в логах тишина

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

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

пс.как снять тред дамп с ctl службы я завтра спрошу у админов- может есть какой то иной способ
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063624
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
автор900% цпу висит на процессех прилоежния
где то рядом пострегрес с 1.3 %
Ок, ну эт хорошо, значит локализовали что это хотя бы наше приложение. А дальше нужно искать уже точно строку кода, вполне возможно что там какой-то баг который в вечный цикл вводит приложение. Это очень быстро отыскивается с помощью thread dump'a. И этому нужно обязательно обучиться - снимать дампы это одно из первых и лучших средств траблшутинга. Поэтому лучше сразу потратить время и разобраться.
авторCommand 'jcmd' not found, but can be installed with:jcmd устанавливается вместе с JDK. Т.е. находится в JAVA_HOME/bin, ищи там. Однако в комплект JRE эта утилита не входит, поэтому если у тебя именно JRE - се ля ви. Нужно будет поставить JDK.
pavel_nvне знаю как насчет jcmd
но на моем опыте обычно используется
jstack <PID> - снять тред-дамп
jmap <PID> - снять хип-дампЭти тоже входят только в JDK, но на сегодняшний день jcmd их вытесняет. Она в себя включает эти две возможности, а также многие другие:
jcmd helpThe following commands are available:
Compiler.CodeHeap_Analytics
Compiler.codecache
Compiler.codelist
Compiler.directives_add
Compiler.directives_clear
Compiler.directives_print
Compiler.directives_remove
Compiler.perfmap
Compiler.queue
GC.class_histogram
GC.finalizer_info
GC.heap_dump
GC.heap_info
GC.run
GC.run_finalization
JFR.check
JFR.configure
JFR.dump
JFR.start
JFR.stop
JVMTI.agent_load
JVMTI.data_dump
ManagementAgent.start
ManagementAgent.start_local
ManagementAgent.status
ManagementAgent.stop
Thread.print
VM.class_hierarchy
VM.classloader_stats
VM.classloaders
VM.command_line
VM.dynlibs
VM.events
VM.flags
VM.info
VM.log
VM.metaspace
VM.native_memory
VM.print_touched_methods
VM.set_flag
VM.stringtable
VM.symboltable
VM.system_properties
VM.systemdictionary
VM.uptime
VM.version
help

я могу локально прогнать впринципе эти данные,локально у меня установлен jdk ,правда не линукс ,а винда.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063625
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там - обычный bash-script. По нему - найдешь где установлена JDK/JRE.

Найдешь - дальше будем дейстовать по обстановке. Вполне вероятно что JDK не установлен. Тогда надо
будет его доустановить. apt install ... e.t.c.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063630
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Там - обычный bash-script. По нему - найдешь где установлена JDK/JRE.

Найдешь - дальше будем дейстовать по обстановке. Вполне вероятно что JDK не установлен. Тогда надо
будет его доустановить. apt install ... e.t.c.

нет прав у меня на установку

я сейчас локально запустил - у меня тут есть jdk ,id процесса,который грузит ядра я увижу в виндовском диспетчере задач - не уверен что это именно тот id,который можно будет посдавить в jcmd ,но попробуем

где то через два часа система стопорнется и попробуем

пс.если кто то знает как на винде найти процессы и сколько они откушали ресурсов - подскажите пож
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063632
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джаву не обязательно устанавливать из пакетов. Можно положить в своем home, и в конфигах запуска Томката указать путь к своей джаве. В Убунте например это в /etc/default/tomcatN
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063633
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Там - обычный bash-script. По нему - найдешь где установлена JDK/JRE.

Найдешь - дальше будем дейстовать по обстановке. Вполне вероятно что JDK не установлен. Тогда надо
будет его доустановить. apt install ... e.t.c.

посмотрел этот скрипт - про джаву там ничего нет - только настройки с которыми запускается приложуха

набрал java --version
Код: java
1.
2.
3.
4.
~$ java --version
openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu219.10)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu219.10, mixed mode, sharing)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063634
А ты убедился что у тебя на самом деле нет JDK на сервере? Как ты об этом узнал? JAVA_HOME нашел?
С systemctl нужно разобраться и обязательно научиться им пользоваться.
авторя могу локально прогнать впринципе эти данные,локально у меня установлен jdk ,правда не линукс ,а винда.
Ну локально ты и продебажить нормально можешь :) Раз нашел записи которые вредят - можно только их и оставить в БД чтоб быстрей воспроизвести проблему.
авторid процесса,который грузит ядра я увижу в виндовском диспетчере задач - не уверен что это именно тот id,который можно будет посдавить в jcmdПросто выполняешь jcmd - он выводит список жава процессов.
авторсейчас я уже думаю что бд - вероятно не может такое количество засейвить- и где то что то превращается в вечно ждущеее состояниеВечно ждущее будет то и делать что ждать. А не отъедать CPU.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063635
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
~$ which java
Получишь путь к тому, что вызывается по команде "java"

Код: plaintext
~$ ps -Af | grep -i java
Получишь список процессов, в которых фигурирует слово "java". Среди них будет и томкат, и там должен быть полный путь к исполняемому файлу java.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063636
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
А ты убедился что у тебя на самом деле нет JDK на сервере? Как ты об этом узнал? JAVA_HOME нашел?
С systemctl нужно разобраться и обязательно научиться им пользоваться.
авторя могу локально прогнать впринципе эти данные,локально у меня установлен jdk ,правда не линукс ,а винда.
Ну локально ты и продебажить нормально можешь :) Раз нашел записи которые вредят - можно только их и оставить в БД чтоб быстрей воспроизвести проблему.
авторid процесса,который грузит ядра я увижу в виндовском диспетчере задач - не уверен что это именно тот id,который можно будет посдавить в jcmdПросто выполняешь jcmd - он выводит список жава процессов.
авторсейчас я уже думаю что бд - вероятно не может такое количество засейвить- и где то что то превращается в вечно ждущеее состояниеВечно ждущее будет то и делать что ждать. А не отъедать CPU.
к сожалению запииси ,на которых все останаливвалось - были убраны из списка- но приложение все равно виснет где то +- в том же месте .
По серваку я думаю что там нет jdk - собственно как набираешь jcmd тебе линукс сразу предлагает установить его,но у меня нет прав на это судя по всему да и по шапке можно за такое получить- лучше локально найду)

мои знания по систем ctl пока ограничиваются лишь тремя командами ,старт/стоп и статус)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063637
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удивительно,но все есть в диспетчере задач
и pid,и процессорные ресурсы,им потребляемые и даже память
- pid совпадает с jps трекром
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063639
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79

что я начал делать дальше - я прогнал локально - тоесть на винде,на другой системе ,на другой версии постгрес
и опять уперся рогом ровно в тоже самое место ,что и на серваке...
при этом вообще не понятно что проиходит- так как в логах тишина


Так сделай локально семплирование, или тред-дамп, если локально проблема тоже воспроизводится.
может там какой нибудь хибернейт с кучей связей и делаются dirty check проверки миллионов записей...
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton
Там - обычный bash-script. По нему - найдешь где установлена JDK/JRE.

Найдешь - дальше будем дейстовать по обстановке. Вполне вероятно что JDK не установлен. Тогда надо
будет его доустановить. apt install ... e.t.c.

нет прав у меня на установку

Нади где она лежит. И утилиту jcmd

Код: sql
1.
2.
$ find /usr -name jcmd -type f
/usr/lib/jvm/java-11-openjdk-amd64/bin/jcmd



Конфигурируй path,classpath. И запускай javac и утилиты.

Вот фрагмент моего конфигуратора который я запускаю для Apache Cassandra. Он мне нужен чтоб переключаться
с 11 java на 8. Просто Кассандра так написана что ей нужна пока восьмерка.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#!/bin/bash 

JAVA_HOME=/jdk/8
CLASSPATH=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME
export CLASSPATH
export PATH

PS1="java8> "

export PS1

bash
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063643
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv
asv79

что я начал делать дальше - я прогнал локально - тоесть на винде,на другой системе ,на другой версии постгрес
и опять уперся рогом ровно в тоже самое место ,что и на серваке...
при этом вообще не понятно что проиходит- так как в логах тишина


Так сделай локально семплирование, или тред-дамп, если локально проблема тоже воспроизводится.
может там какой нибудь хибернейт с кучей связей и делаются dirty check проверки миллионов записей...

щас сделаю тред дамп- как только поймаю это состояние
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063646
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

нет прав у меня на установку

Нади где она лежит. И утилиту jcmd

Код: sql
1.
2.
$ find /usr -name jcmd -type f
/usr/lib/jvm/java-11-openjdk-amd64/bin/jcmd



Конфигурируй path,classpath. И запускай javac и утилиты.

Вот фрагмент моего конфигуратора который я запускаю для Apache Cassandra. Он мне нужен чтоб переключаться
с 11 java на 8. Просто Кассандра так написана что ей нужна пока восьмерка.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#!/bin/bash 

JAVA_HOME=/jdk/8
CLASSPATH=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME
export CLASSPATH
export PATH

PS1="java8> "

export PS1

bash


майтон я локально щас воспроизведу проблему и сниму тред дамп
на сервере у меня нет прав - да и не приветствуется у нас эта самодеятельность.
ПРоще и спокойней на локальной машине все это найти .
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063647
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй. Но перформанс issue обычно очень капризные. Может быть даже такой кейс что локально
она не воспроизведется.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063650
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Попробуй. Но перформанс issue обычно очень капризные. Может быть даже такой кейс что локально
она не воспроизведется.
я так же думал - поэтому как только это у меня воспроизвелось локально причем в том же самом месте я пригорел так что чуть компухтер в окно не выкинул ну и понятно что я к херам постопал все и забыл снять тред дамп.

сейчас у меня на серваке - идет процес но в одном потоке
локально многопоточка
если в одном потоке все будет ок- то я даже парится не буду ибо задача одноразовая - запустил получил дамп постгрес и на этом все- приложение можно удалять,так что
пох что вместо 3 часов будет 24,главно чтоб сбоев не было - ведь эта шляпа работала безотказно какое то время - я представляю если бы такое вылезло в час X - когда мы будем переводить систему на новое ядро ,даже страшно подумать что бы было- ведь на ресерч этой шляпы нужно на каждый заход по 3 часа( формировка контекста)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063659
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай однопоточное приложение и закрывай этот баг.

Тебя-ж никто не просит это делать 3 часа? Вот когда поросят - тогда и поднимешь отдельную story.
Оптимизация там.. Параллелизмы.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063664
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал тред дамп- подскажите спецы что тут не так и почему виснет приложение
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
Full thread dump OpenJDK 64-Bit Server VM (11.0.9+11-LTS mixed mode):

Threads class SMR info:
_java_thread_list=0x0000022bc2a8b620, length=50, elements={
0x0000022bb6662800, 0x0000022bb666c000, 0x0000022bb66cc800, 0x0000022bb66cf000,
0x0000022bb66d2000, 0x0000022bb66dd000, 0x0000022bb6896000, 0x0000022bb7102000,
0x0000022bb7107000, 0x0000022bb7237800, 0x0000022bb72b4800, 0x0000022bba46b800,
0x0000022bba68b000, 0x0000022bba67b000, 0x0000022bbc65f000, 0x0000022bbc665800,
0x0000022bbc661000, 0x0000022bbc660000, 0x0000022bbc661800, 0x0000022bbc662800,
0x0000022bbc663800, 0x0000022bbc664000, 0x0000022bbc665000, 0x0000022bbac16800,
0x0000022bbac16000, 0x0000022bbac18800, 0x0000022bbac19000, 0x0000022bbac1a000,
0x0000022bbac14000, 0x0000022bbac1a800, 0x0000022bbac15000, 0x0000022bbac1c800,
0x0000022bbac1f800, 0x0000022bbac1e000, 0x0000022bbac1f000, 0x0000022bbac20800,
0x0000022bbac1b800, 0x0000022bbac17800, 0x0000022bbac1d000, 0x0000022bbac21800,
0x0000022bbac22000, 0x0000022bc1b0d000, 0x0000022bc1b09000, 0x0000022bc1b0b800,
0x0000022bc1b0c000, 0x0000022bc1b07800, 0x0000022bc1b0a800, 0x0000022bc1b0e000,
0x0000022bc1b08000, 0x0000022bc1b09800
}

"Reference Handler" #2 daemon prio=10 os_prio=2 cpu=62.50ms elapsed=8976.06s tid=0x0000022bb6662800 nid=0x2ef4 waiting on condition  [0x0000006f085ff000
]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList(java.base@11.0.9/Native Method)
        at java.lang.ref.Reference.processPendingReferences(java.base@11.0.9/Reference.java:241)
        at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.9/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=1 cpu=31.25ms elapsed=8976.06s tid=0x0000022bb666c000 nid=0x4584 in Object.wait()  [0x0000006f086ff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(java.base@11.0.9/Native Method)
        - waiting on <no object reference available>
        at java.lang.ref.ReferenceQueue.remove(java.base@11.0.9/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x0000000704043e38> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(java.base@11.0.9/ReferenceQueue.java:176)
        at java.lang.ref.Finalizer$FinalizerThread.run(java.base@11.0.9/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=2 cpu=0.00ms elapsed=8976.03s tid=0x0000022bb66cc800 nid=0x3cf8 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #5 daemon prio=5 os_prio=2 cpu=15.63ms elapsed=8976.03s tid=0x0000022bb66cf000 nid=0x2e48 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread0" #6 daemon prio=9 os_prio=2 cpu=7890.63ms elapsed=8976.02s tid=0x0000022bb66d2000 nid=0x45b0 waiting on condition  [0x00000000000000
00]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #10 daemon prio=9 os_prio=2 cpu=4468.75ms elapsed=8976.02s tid=0x0000022bb66dd000 nid=0x4778 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #11 daemon prio=8 os_prio=1 cpu=46.88ms elapsed=8975.76s tid=0x0000022bb6896000 nid=0x3df8 in Object.wait()  [0x0000006f08bff000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(java.base@11.0.9/Native Method)
        - waiting on <no object reference available>
        at java.lang.ref.ReferenceQueue.remove(java.base@11.0.9/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x000000070404d7a8> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run(java.base@11.0.9/CleanerImpl.java:148)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)
        at jdk.internal.misc.InnocuousThread.run(java.base@11.0.9/InnocuousThread.java:134)

"Monitor Ctrl-Break" #12 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8974.92s tid=0x0000022bb7102000 nid=0x3318 runnable  [0x0000006f08cfe000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(java.base@11.0.9/Native Method)
        at java.net.SocketInputStream.socketRead(java.base@11.0.9/SocketInputStream.java:115)
        at java.net.SocketInputStream.read(java.base@11.0.9/SocketInputStream.java:168)
        at java.net.SocketInputStream.read(java.base@11.0.9/SocketInputStream.java:140)
        at sun.nio.cs.StreamDecoder.readBytes(java.base@11.0.9/StreamDecoder.java:284)
        at sun.nio.cs.StreamDecoder.implRead(java.base@11.0.9/StreamDecoder.java:326)
        at sun.nio.cs.StreamDecoder.read(java.base@11.0.9/StreamDecoder.java:178)
        - locked <0x000000070404a340> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(java.base@11.0.9/InputStreamReader.java:185)
        at java.io.BufferedReader.fill(java.base@11.0.9/BufferedReader.java:161)
        at java.io.BufferedReader.readLine(java.base@11.0.9/BufferedReader.java:326)
        - locked <0x000000070404a340> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(java.base@11.0.9/BufferedReader.java:392)
        at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:47)

"Service Thread" #13 daemon prio=9 os_prio=0 cpu=0.00ms elapsed=8974.92s tid=0x0000022bb7107000 nid=0xc60 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"RMI TCP Accept-0" #15 daemon prio=5 os_prio=0 cpu=250.00ms elapsed=8974.54s tid=0x0000022bb7237800 nid=0x6a4 runnable  [0x0000006f08efe000]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.accept0(java.base@11.0.9/Native Method)
        at java.net.PlainSocketImpl.socketAccept(java.base@11.0.9/PlainSocketImpl.java:159)
        at java.net.AbstractPlainSocketImpl.accept(java.base@11.0.9/AbstractPlainSocketImpl.java:458)
        at java.net.ServerSocket.implAccept(java.base@11.0.9/ServerSocket.java:565)
        at java.net.ServerSocket.accept(java.base@11.0.9/ServerSocket.java:533)
        at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(jdk.management.agent@11.0.9/LocalRMIServerSocketFactory.java:52)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(java.rmi@11.0.9/TCPTransport.java:394)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(java.rmi@11.0.9/TCPTransport.java:366)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"RMI Scheduler(0)" #17 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8974.24s tid=0x0000022bb72b4800 nid=0x1780 waiting on condition  [0x0000006f097fe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000703b318f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:1170)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"HikariPool-1 housekeeper" #47 daemon prio=5 os_prio=0 cpu=46.88ms elapsed=8962.74s tid=0x0000022bba46b800 nid=0x3958 waiting on condition  [0x0000006f0
9bfe000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000708e0e140> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.9/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@11.0.9/AbstractQueuedSynchronizer.java:2123)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:1182)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"Catalina-utility-1" #59 prio=1 os_prio=-2 cpu=453.13ms elapsed=8957.21s tid=0x0000022bba68b000 nid=0x18c8 runnable  [0x0000006f09dfe000]
   java.lang.Thread.State: RUNNABLE
        at java.util.concurrent.ConcurrentHashMap$KeySetView.iterator(java.base@11.0.9/ConcurrentHashMap.java:4627)
        at java.util.Collections$SetFromMap.iterator(java.base@11.0.9/Collections.java:5567)
        at org.apache.coyote.AbstractProtocol$2.run(AbstractProtocol.java:625)
        at java.util.concurrent.Executors$RunnableAdapter.call(java.base@11.0.9/Executors.java:515)
        at java.util.concurrent.FutureTask.runAndReset(java.base@11.0.9/FutureTask.java:305)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@11.0.9/ScheduledThreadPoolExecutor.java:305)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"Catalina-utility-2" #60 prio=1 os_prio=-2 cpu=421.88ms elapsed=8957.21s tid=0x0000022bba67b000 nid=0x171c waiting on condition  [0x0000006f09efe000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000704730838> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.9/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@11.0.9/AbstractQueuedSynchronizer.java:2123)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:1182)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"container-0" #61 prio=5 os_prio=0 cpu=0.00ms elapsed=8957.20s tid=0x0000022bbc65f000 nid=0x830 waiting on condition  [0x0000006f09ffe000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(java.base@11.0.9/Native Method)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:570)
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer$1.run(TomcatWebServer.java:197)

"cluster-ClusterId{value='607c74fe1ea59f50c5f7e548', description='null'}-localhost:27017" #126 daemon prio=5 os_prio=0 cpu=375.00ms elapsed=8953.38s tid
=0x0000022bbc665800 nid=0x1cd8 waiting on condition  [0x0000006f09cff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712b58> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.9/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@11.0.9/AbstractQueuedSynchronizer.java:2123)
        at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.waitForSignalOrTimeout(DefaultServerMonitor.java:228)
        at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.waitForNext(DefaultServerMonitor.java:209)
        at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:157)
        - locked <0x0000000709712c00> (a com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-nioEventLoop-4-1" #128 daemon prio=5 os_prio=0 cpu=281.25ms elapsed=8952.82s tid=0x0000022bbc661000 nid=0x3c64 runnable  [0x0000006f0a2fe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(java.base@11.0.9/Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(java.base@11.0.9/WindowsSelectorImpl.java:357)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(java.base@11.0.9/WindowsSelectorImpl.java:182)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.9/SelectorImpl.java:124)
        - locked <0x00000007097600a0> (a io.netty.channel.nio.SelectedSelectionKeySet)
        - locked <0x0000000709760018> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(java.base@11.0.9/SelectorImpl.java:141)
        at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:68)
        at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:805)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:457)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-eventExecutorLoop-1-1" #129 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.75s tid=0x0000022bbc660000 nid=0x2da8 waiting on condition  [0x0000
006f0a3fe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x000000075ba9d6a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-eventExecutorLoop-1-2" #130 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.73s tid=0x0000022bbc661800 nid=0x4e3c waiting on condition  [0x0000
006f0a4fe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000711300000> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-BlockPoller" #131 daemon prio=5 os_prio=0 cpu=62.50ms elapsed=8952.65s tid=0x0000022bbc662800 nid=0x47c4 runnable  [0x0000006f0a5fe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(java.base@11.0.9/Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(java.base@11.0.9/WindowsSelectorImpl.java:357)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(java.base@11.0.9/WindowsSelectorImpl.java:182)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.9/SelectorImpl.java:124)
        - locked <0x000000070974d6c0> (a sun.nio.ch.Util$2)
        - locked <0x000000070974d638> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(java.base@11.0.9/SelectorImpl.java:136)
        at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:313)

"http-nio-8080-exec-1" #132 daemon prio=5 os_prio=0 cpu=15.63ms elapsed=8952.65s tid=0x0000022bbc663800 nid=0x4ebc waiting on condition  [0x0000006f0a6f
f000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-2" #133 daemon prio=5 os_prio=0 cpu=4934234.38ms elapsed=8952.65s tid=0x0000022bbc664000 nid=0x730 runnable  [0x0000006f0a7f8000]
   java.lang.Thread.State: RUNNABLE
        at java.util.concurrent.ConcurrentHashMap$KeyIterator.next(java.base@11.0.9/ConcurrentHashMap.java:3456)
        at java.util.Collection.removeIf(java.base@11.0.9/Collection.java:544)
        at java.util.Collections$SetFromMap.removeIf(java.base@11.0.9/Collections.java:5585)
        at ru.backend.services.migration.IExecutor.enqueueJob(IExecutor.java:28)
        at ru.backend.services.migration.stats.StatsMigrationService.migrateStats(StatsMigrationService.java:159)
        at ru.backend.services.migration.MigrationController.migrateStats(MigrationController.java:101)
        at ru.backend.services.migration.MigrationController$$FastClassBySpringCGLIB$$cdcfb4fc.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
        at ru.backend.services.auth.UserRecentAspect.requestMapping(UserRecentAspect.java:33)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.9/Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.9/NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.9/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(java.base@11.0.9/Method.java:566)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
        at ru.backend.services.migration.MigrationController$$EnhancerBySpringCGLIB$$9d3ef71c.migrateStats(<generated>)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.9/Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.9/NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.9/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(java.base@11.0.9/Method.java:566)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.security.web.authentication.switchuser.SwitchUserFilter.doFilter(SwitchUserFilter.java:196)
        at org.springframework.security.web.authentication.switchuser.SwitchUserFilter.doFilter(SwitchUserFilter.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
        at org.springframework.security.web.authentication.switchuser.SwitchUserFilter.doFilter(SwitchUserFilter.java:196)
        at org.springframework.security.web.authentication.switchuser.SwitchUserFilter.doFilter(SwitchUserFilter.java:166)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149
)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:147)
        at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:2
18)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:2
12)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:115)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
        at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.jav
a:55)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.security.oauth2.client.filter.OAuth2ClientContextFilter.doFilter(OAuth2ClientContextFilter.java:64)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:141)
        at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:82)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        - locked <0x0000000709757f68> (a org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-3" #134 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.65s tid=0x0000022bbc665000 nid=0x53b8 waiting on condition  [0x0000006f0a8fe
000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-4" #135 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.65s tid=0x0000022bbac16800 nid=0x3e74 waiting on condition  [0x0000006f0a9fe
000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-5" #136 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.65s tid=0x0000022bbac16000 nid=0x2b0 waiting on condition  [0x0000006f0aafe0
00]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-6" #137 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.65s tid=0x0000022bbac18800 nid=0x14d0 waiting on condition  [0x0000006f0abfe
000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-7" #138 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.65s tid=0x0000022bbac19000 nid=0x12d4 waiting on condition  [0x0000006f0acfe
000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-8" #139 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.65s tid=0x0000022bbac1a000 nid=0x52e0 waiting on condition  [0x0000006f0adfe
000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-9" #140 daemon prio=5 os_prio=0 cpu=15.63ms elapsed=8952.65s tid=0x0000022bbac14000 nid=0x2b34 waiting on condition  [0x0000006f0aef
f000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-exec-10" #141 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.65s tid=0x0000022bbac1a800 nid=0x1870 waiting on condition  [0x0000006f0aff
f000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709712ea0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:108)
        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-ClientPoller" #142 daemon prio=5 os_prio=0 cpu=125.00ms elapsed=8952.64s tid=0x0000022bbac15000 nid=0x41a4 runnable  [0x0000006f0b0ff000]

   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(java.base@11.0.9/Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(java.base@11.0.9/WindowsSelectorImpl.java:357)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(java.base@11.0.9/WindowsSelectorImpl.java:182)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.9/SelectorImpl.java:124)
        - locked <0x0000000709785388> (a sun.nio.ch.Util$2)
        - locked <0x0000000709785300> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(java.base@11.0.9/SelectorImpl.java:136)
        at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:709)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"http-nio-8080-Acceptor" #143 daemon prio=5 os_prio=0 cpu=15.63ms elapsed=8952.64s tid=0x0000022bbac1c800 nid=0x3854 runnable  [0x0000006f0b1fe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.ServerSocketChannelImpl.accept0(java.base@11.0.9/Native Method)
        at sun.nio.ch.ServerSocketChannelImpl.accept(java.base@11.0.9/ServerSocketChannelImpl.java:533)
        at sun.nio.ch.ServerSocketChannelImpl.accept(java.base@11.0.9/ServerSocketChannelImpl.java:285)
        at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:469)
        at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:71)
        at org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:106)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-nioEventLoop-4-2" #146 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.59s tid=0x0000022bbac1f800 nid=0x3ab4 runnable  [0x0000006f0b4fe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(java.base@11.0.9/Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(java.base@11.0.9/WindowsSelectorImpl.java:357)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(java.base@11.0.9/WindowsSelectorImpl.java:182)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.9/SelectorImpl.java:124)
        - locked <0x0000000709716690> (a io.netty.channel.nio.SelectedSelectionKeySet)
        - locked <0x0000000709716608> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(java.base@11.0.9/SelectorImpl.java:141)
        at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:68)
        at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:805)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:457)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-eventExecutorLoop-1-3" #147 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.58s tid=0x0000022bbac1e000 nid=0x23e4 waiting on condition  [0x0000
006f0b5fe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x00000007113000d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-eventExecutorLoop-1-4" #148 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.58s tid=0x0000022bbac1f000 nid=0x4258 waiting on condition  [0x0000
006f0b6ff000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000711380018> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-eventExecutorLoop-1-5" #150 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8952.13s tid=0x0000022bbac20800 nid=0x21e0 waiting on condition  [0x0000
006f0b7fe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x000000075baa7528> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"pool-1-thread-1" #152 prio=5 os_prio=0 cpu=125.00ms elapsed=8951.99s tid=0x0000022bbac1b800 nid=0x2960 waiting on condition  [0x0000006f0b2fe000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000709738500> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.9/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@11.0.9/AbstractQueuedSynchronizer.java:2123)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:1182)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@11.0.9/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@11.0.9/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.9/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.9/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"DestroyJavaVM" #153 prio=5 os_prio=0 cpu=14171.88ms elapsed=8951.98s tid=0x0000022bbac17800 nid=0x1654 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"lettuce-eventExecutorLoop-1-6" #159 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8944.94s tid=0x0000022bbac1d000 nid=0x2aa8 waiting on condition  [0x0000
006f0b8fe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000712080000> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-eventExecutorLoop-1-7" #160 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8944.05s tid=0x0000022bbac21800 nid=0x4358 waiting on condition  [0x0000
006f0bbfe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x00000007113001b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"lettuce-eventExecutorLoop-1-8" #161 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=8944.04s tid=0x0000022bbac22000 nid=0x471c waiting on condition  [0x0000
006f0bcfe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x00000007113800f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.9/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.9/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.LinkedBlockingQueue.take(java.base@11.0.9/LinkedBlockingQueue.java:433)
        at io.netty.util.concurrent.SingleThreadEventExecutor.takeTask(SingleThreadEventExecutor.java:243)
        at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:64)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"cluster-ClusterId{value='607c7cf01ea59f50c5f7e549', description='null'}-localhost:27017" #167 daemon prio=5 os_prio=0 cpu=312.50ms elapsed=6919.72s tid
=0x0000022bc1b0d000 nid=0xbb4 waiting on condition  [0x0000006f07cff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
        - parking to wait for  <0x0000000799aa3948> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.9/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@11.0.9/AbstractQueuedSynchronizer.java:2123)
        at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.waitForSignalOrTimeout(DefaultServerMonitor.java:228)
        at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.waitForNext(DefaultServerMonitor.java:209)
        at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:157)
        - locked <0x0000000799aa3960> (a com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable)
        at java.lang.Thread.run(java.base@11.0.9/Thread.java:834)

"ForkJoinPool-1-worker-3" #168 daemon prio=5 os_prio=0 cpu=2166937.50ms elapsed=6919.60s tid=0x0000022bc1b09000 nid=0xd98 runnable  [0x0000006f096fd000]

   java.lang.Thread.State: RUNNABLE
        at java.lang.StringLatin1.inflate(java.base@11.0.9/StringLatin1.java:726)
        at java.lang.StringLatin1.toChars(java.base@11.0.9/StringLatin1.java:74)
        at java.lang.String.toCharArray(java.base@11.0.9/String.java:2855)
        at java.math.BigDecimal.<init>(java.base@11.0.9/BigDecimal.java:834)
        at java.math.BigDecimal.valueOf(java.base@11.0.9/BigDecimal.java:1304)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:62)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"ForkJoinPool-1-worker-5" #169 daemon prio=5 os_prio=0 cpu=2178375.00ms elapsed=6919.60s tid=0x0000022bc1b0b800 nid=0x3bc4 runnable  [0x0000006f098fd000
]
   java.lang.Thread.State: RUNNABLE
        at java.math.BigDecimal.<init>(java.base@11.0.9/BigDecimal.java:401)
        at java.math.BigDecimal.<init>(java.base@11.0.9/BigDecimal.java:834)
        at java.math.BigDecimal.valueOf(java.base@11.0.9/BigDecimal.java:1304)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:62)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"ForkJoinPool-1-worker-7" #170 daemon prio=5 os_prio=0 cpu=2377468.75ms elapsed=6919.59s tid=0x0000022bc1b0c000 nid=0x6b8 runnable  [0x0000006f09afd000]

   java.lang.Thread.State: RUNNABLE
        at java.math.BigDecimal.setScale(java.base@11.0.9/BigDecimal.java:2824)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:62)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"ForkJoinPool-1-worker-9" #171 daemon prio=5 os_prio=0 cpu=2359812.50ms elapsed=6919.59s tid=0x0000022bc1b07800 nid=0x41c4 runnable  [0x0000006f0b3fd000
]
   java.lang.Thread.State: RUNNABLE
        at java.math.BigDecimal.setScale(java.base@11.0.9/BigDecimal.java:2824)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:62)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"ForkJoinPool-1-worker-11" #172 daemon prio=5 os_prio=0 cpu=2150625.00ms elapsed=6919.59s tid=0x0000022bc1b0a800 nid=0x1848 runnable  [0x0000006f0b9fd00
0]
   java.lang.Thread.State: RUNNABLE
        at java.util.HashMap.putVal(java.base@11.0.9/HashMap.java:652)
        at java.util.HashMap.put(java.base@11.0.9/HashMap.java:607)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:64)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"ForkJoinPool-1-worker-13" #173 daemon prio=5 os_prio=0 cpu=2173156.25ms elapsed=6919.59s tid=0x0000022bc1b0e000 nid=0x40ac runnable  [0x0000006f0bafd00
0]
   java.lang.Thread.State: RUNNABLE
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:61)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"ForkJoinPool-1-worker-15" #174 daemon prio=5 os_prio=0 cpu=2375453.13ms elapsed=6919.59s tid=0x0000022bc1b08000 nid=0x3d9c runnable  [0x0000006f0c3fd00
0]
   java.lang.Thread.State: RUNNABLE
        at jdk.internal.math.FloatingDecimal.getBinaryToASCIIConverter(java.base@11.0.9/FloatingDecimal.java:1738)
        at jdk.internal.math.FloatingDecimal.toJavaFormatString(java.base@11.0.9/FloatingDecimal.java:70)
        at java.lang.Double.toString(java.base@11.0.9/Double.java:204)
        at java.math.BigDecimal.valueOf(java.base@11.0.9/BigDecimal.java:1304)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:62)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"ForkJoinPool-1-worker-1" #175 daemon prio=5 os_prio=0 cpu=2357875.00ms elapsed=6919.59s tid=0x0000022bc1b09800 nid=0x74c runnable  [0x0000006f0c4fd000]

   java.lang.Thread.State: RUNNABLE
        at java.util.HashMap.putVal(java.base@11.0.9/HashMap.java:652)
        at java.util.HashMap.put(java.base@11.0.9/HashMap.java:607)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:63)
        at ru.backend.services.migration.stats.types.RatingAnswerConverter.genAnswerRequestOptions(RatingAnswerConverter.java:27)
        at ru.backend.services.migration.stats.types.AnswerRequestConverter.convert(AnswerRequestConverter.java:20)
        at ru.backend.services.migration.stats.StatsMigrationService.migratePassage(StatsMigrationService.java:600)
        at ru.backend.services.migration.stats.StatsMigrationService.lambda$migrateStats$2(StatsMigrationService.java:161)
        at ru.backend.services.migration.stats.StatsMigrationService$$Lambda$1484/0x0000000800cf7840.run(Unknown Source)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(java.base@11.0.9/ForkJoinTask.java:1407)
        at java.util.concurrent.ForkJoinTask.doExec(java.base@11.0.9/ForkJoinTask.java:290)
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@11.0.9/ForkJoinPool.java:1020)
        at java.util.concurrent.ForkJoinPool.scan(java.base@11.0.9/ForkJoinPool.java:1656)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@11.0.9/ForkJoinPool.java:1594)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@11.0.9/ForkJoinWorkerThread.java:183)

"VM Thread" os_prio=2 cpu=6421.88ms elapsed=8976.07s tid=0x0000022bb5dba000 nid=0x4708 runnable

"GC Thread#0" os_prio=2 cpu=29703.13ms elapsed=8976.10s tid=0x0000022b9009d800 nid=0x4bf0 runnable

"GC Thread#1" os_prio=2 cpu=29453.13ms elapsed=8974.52s tid=0x0000022bb725c800 nid=0x361c runnable

"GC Thread#2" os_prio=2 cpu=30921.88ms elapsed=8974.52s tid=0x0000022bb725d800 nid=0x35a8 runnable

"GC Thread#3" os_prio=2 cpu=31140.63ms elapsed=8974.52s tid=0x0000022bb72a8800 nid=0x4e9c runnable

"GC Thread#4" os_prio=2 cpu=29453.13ms elapsed=8974.52s tid=0x0000022bb72a9000 nid=0x40e0 runnable

"GC Thread#5" os_prio=2 cpu=29390.63ms elapsed=8974.52s tid=0x0000022bb72aa000 nid=0x4044 runnable

"GC Thread#6" os_prio=2 cpu=30593.75ms elapsed=8957.08s tid=0x0000022bbc786000 nid=0x2a74 runnable

"GC Thread#7" os_prio=2 cpu=29734.38ms elapsed=8957.08s tid=0x0000022bbaf23000 nid=0x405c runnable

"G1 Main Marker" os_prio=2 cpu=359.38ms elapsed=8976.10s tid=0x0000022b90100000 nid=0x53bc runnable

"G1 Conc#0" os_prio=2 cpu=1851593.75ms elapsed=8976.10s tid=0x0000022b90101800 nid=0xa44 runnable

"G1 Conc#1" os_prio=2 cpu=1876312.50ms elapsed=8973.62s tid=0x0000022bb80c2800 nid=0x1c38 runnable

"G1 Refine#0" os_prio=2 cpu=10531.25ms elapsed=8976.09s tid=0x0000022bb5ca3000 nid=0x48f4 runnable

"G1 Refine#1" os_prio=2 cpu=968.75ms elapsed=8974.51s tid=0x0000022bb6b42000 nid=0x3454 runnable

"G1 Refine#2" os_prio=2 cpu=515.63ms elapsed=8943.86s tid=0x0000022bbcc27000 nid=0x1c1c runnable

"G1 Refine#3" os_prio=2 cpu=187.50ms elapsed=8943.86s tid=0x0000022bbce6f800 nid=0x2c50 runnable

"G1 Refine#4" os_prio=2 cpu=156.25ms elapsed=8943.86s tid=0x0000022bbad9b000 nid=0x5334 runnable

"G1 Refine#5" os_prio=2 cpu=93.75ms elapsed=8943.17s tid=0x0000022bbc681000 nid=0x3288 runnable

"G1 Refine#6" os_prio=2 cpu=62.50ms elapsed=8942.97s tid=0x0000022bbcc00800 nid=0x1ab4 runnable

"G1 Refine#7" os_prio=2 cpu=46.88ms elapsed=8940.51s tid=0x0000022bbcf4c000 nid=0x4010 runnable

"G1 Young RemSet Sampling" os_prio=2 cpu=5125.00ms elapsed=8976.09s tid=0x0000022bb5ca4000 nid=0x4588 runnable
"VM Periodic Task Thread" os_prio=2 cpu=218.75ms elapsed=8974.53s tid=0x0000022bb7253000 nid=0xa9c waiting on condition

JNI global refs: 20, weak refs: 0
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063667
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Делай однопоточное приложение и закрывай этот баг.

Тебя-ж никто не просит это делать 3 часа? Вот когда поросят - тогда и поднимешь отдельную story.
Оптимизация там.. Параллелизмы.

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

пс.сделал тред дамп - хз что там не так -судя по всему все таки дед лок?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063668
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

у тебя в HashMap, который многопоточность не умеет, пишет куча потоков: https://www.google.com/search?q=hashmap infinite loop
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063669
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79,

у тебя в HashMap, который многопоточность не умеет, пишет куча потоков: https://www.google.com/search?q=hashmap infinite loop

где? какая строчка и если не сложно покажи как ты это увидел пож
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063670
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

Код: java
1.
2.
3.
        at java.util.HashMap.putVal(java.base@11.0.9/HashMap.java:652)
        at java.util.HashMap.put(java.base@11.0.9/HashMap.java:607)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:63)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063673
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton
Делай однопоточное приложение и закрывай этот баг.

Тебя-ж никто не просит это делать 3 часа? Вот когда поросят - тогда и поднимешь отдельную story.
Оптимизация там.. Параллелизмы.

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

пс.сделал тред дамп - хз что там не так -судя по всему все таки дед лок?

Сложно сказать. Пока я не заметил какого-то единого монитора чтоб все прям потоки на него зацепились.

Но вот я-бы обратил внимание на вот это удаление.


Код: java
1.
2.
3.
4.
5.
6.
"http-nio-8080-exec-2" #133 daemon prio=5 os_prio=0 cpu=4934234.38ms elapsed=8952.65s tid=0x0000022bbc664000 nid=0x730 runnable  [0x0000006f0a7f8000]
   java.lang.Thread.State: RUNNABLE
        at java.util.concurrent.ConcurrentHashMap$KeyIterator.next(java.base@11.0.9/ConcurrentHashMap.java:3456)
        at java.util.Collection.removeIf(java.base@11.0.9/Collection.java:544)
        at java.util.Collections$SetFromMap.removeIf(java.base@11.0.9/Collections.java:5585)
        at ru.backend.services.migration.IExecutor.enqueueJob(IExecutor.java:28)



Что здесь происходит?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063674
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79,

Код: java
1.
2.
3.
        at java.util.HashMap.putVal(java.base@11.0.9/HashMap.java:652)
        at java.util.HashMap.put(java.base@11.0.9/HashMap.java:607)
        at ru.backend.common.types.main.question.impl.rating.QTRating.getPercentMap(QTRating.java:63)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  @NotNull
  public static PercentMap getPercentMap(E e) {
    var min = Boolean.TRUE.equals(e.getStartFromOne()) ? 1 : 0;
    var percentStep = 100.0 / ((e.getOptionsValueMax() - min) / question.getStep());
   С
    for (double i = min, j = 0; i <= e.getOptionsValueMax(); i += e.getStep(), j += percentStep) {
      var percent = BigDecimal.valueOf(j).setScale(0, RoundingMode.HALF_UP);
      optionPercentMap.put(i, percent);
      percentOptionMap.put(percent, i);
    }
    return new PercentMap(optionPercentMap, percentOptionMap);
  }


я правильно понимаю что мне нужно вот эти две хешмапы
Код: java
1.
2.
3.
    var optionPercentMap = new HashMap<Double, BigDecimal>();
    var percentOptionMap = new HashMap<BigDecimal, Double>();
 

поменять на concurrent и все будет норм?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063675
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

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

пс.сделал тред дамп - хз что там не так -судя по всему все таки дед лок?

Сложно сказать. Пока я не заметил какого-то единого монитора чтоб все прям потоки на него зацепились.

Но вот я-бы обратил внимание на вот это удаление.


Код: java
1.
2.
3.
4.
5.
6.
"http-nio-8080-exec-2" #133 daemon prio=5 os_prio=0 cpu=4934234.38ms elapsed=8952.65s tid=0x0000022bbc664000 nid=0x730 runnable  [0x0000006f0a7f8000]
   java.lang.Thread.State: RUNNABLE
        at java.util.concurrent.ConcurrentHashMap$KeyIterator.next(java.base@11.0.9/ConcurrentHashMap.java:3456)
        at java.util.Collection.removeIf(java.base@11.0.9/Collection.java:544)
        at java.util.Collections$SetFromMap.removeIf(java.base@11.0.9/Collections.java:5585)
        at ru.backend.services.migration.IExecutor.enqueueJob(IExecutor.java:28)



Что здесь происходит?


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
  @SneakyThrows
  default void enqueueJob(ExecutorService executorService, Runnable job) {

    getFutures().add(executorService.submit(job));

    while (getFutures().size() >= getMaxQueueSize()) {
      getFutures().removeIf(future -> future.isDone() || future.isCancelled());
    }
  }


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  default boolean removeIf(Predicate<? super E> filter) {
        Objects.requireNonNull(filter);
        boolean removed = false;
        final Iterator<E> each = iterator();
        while (each.hasNext()) {
            if (filter.test(each.next())) {
                each.remove();
                removed = true;
            }
        }
        return removed;
    }
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063676
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

а нет, с таким кодом (раз карты не шарятся) больше похоже что в e.getStep() приходит 0 и оно в бесконечный цикл уходит.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063677
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79,

а нет, с таким кодом (раз карты не шарятся) больше похоже что в e.getStep() приходит 0 и оно в бесконечный цикл уходит.

очень похоже на бесконечный цикл - каково решение 0 проверять степ на 0 ?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063679
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

да кто же знает какая там у тебя логика, написал 100.0 - оно вместо java.lang.ArithmeticException стало Infinity отдавать, а может там вообще отрицательные значения
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063680
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Андрей Панфилов
asv79,

а нет, с таким кодом (раз карты не шарятся) больше похоже что в e.getStep() приходит 0 и оно в бесконечный цикл уходит.

очень похоже на бесконечный цикл
залез в бд есть 4 записи с step=0
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063681
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79,

да кто же знает какая там у тебя логика, написал 100.0 - оно вместо java.lang.ArithmeticException стало Infinity отдавать, а может там вообще отрицательные значения

думаю ты прав- все на это и указывает что система на какой то момент уходит в бесконечный цикл
в базе имеется 4 таких записи с нулевым step видимо я на них и напарывался - и появились они недавно,так как раньше просто не было такой проблемы
сейчас закинул тернарник если 0,то ставим 1,посмотрим что будет
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063688
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
А в отладчике нажать кнопку Стоп и увидеть что код "в бесконечном цикле" не работает что ли?
Ну или то что вызов myFunctionWhile() занимает 100 процентов времени
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063689
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>"в базе имеется 4 таких записи с нулевым step"
= как неожиданно то. Не утечка памяти. И не блокировка потоков.
А просто БД виновато.))
...
Если причина в этом, то в нормальных фирмах не может в бд появится ноль из за ограничений модели.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063702
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это к моему комментарию о том что надо искать простое объяснение бага.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063713
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
>"в базе имеется 4 таких записи с нулевым step"
= как неожиданно то. Не утечка памяти. И не блокировка потоков.
А просто БД виновато.))
...
Если причина в этом, то в нормальных фирмах не может в бд появится ноль из за ограничений модели.

это побочный эфект миграции из монго в постгрес.Тут надо задать вопрос деятелем ,отвечающим за монго данные,почему в монго в step лежит 0 ну и хороший пример того,что лучше итерацию - если вы используете какие то переменные для нее - проверить на 0.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063717
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,
А в отладчике нажать кнопку Стоп и увидеть что код "в бесконечном цикле" не работает что ли?
Ну или то что вызов myFunctionWhile() занимает 100 процентов времени

про бесконечный цикл ты конечно загнул - сейчас то легко говорить - когда нашли причину.
Собственно ты там выше что нам пел как соловей- БАЗА БАЗА БАЗА
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063718
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Модель странная само собой.
Но почему ты полностью игнорируешь в топиках работу с бд, и влияние бд на проект, это вопрос лично к тебе.
Ведь второй уже топик где у тебя отвращение к субд.
Не было ответов на вопрос
- как вырубить из юз кейса влияние обоих бд
- как найти самую часто вызываемую или самую длительную функцию (зацикливание)
- почему не нажал кнопку Стоп выполнения в отладке
- почему в проекте нед логирования (мы не видели)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063719
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
asv79,
А в отладчике нажать кнопку Стоп и увидеть что код "в бесконечном цикле" не работает что ли?
Ну или то что вызов myFunctionWhile() занимает 100 процентов времени

про бесконечный цикл ты конечно загнул - сейчас то легко говорить - когда нашли причину.
Собственно ты там выше что нам пел как соловей- БАЗА БАЗА БАЗА
я тебя спрашивал чтобы ты дал самую тяжелую процедуру.
Ты и сейчас не знаешь как это сделать.
Готовь грабли на след раз
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063722
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут совершенно идиотский ответ ТС на просьбу дать самую тяжелую функцию.
22310274
https://ru.m.wikipedia.org/wiki/Профилирование_(информатика)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063724
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
asv79,
Модель странная само собой.
Но почему ты полностью игнорируешь в топиках работу с бд, и влияние бд на проект, это вопрос лично к тебе.
Ведь второй уже топик где у тебя отвращение к субд.
Не было ответов на вопрос
- как вырубить из юз кейса влияние обоих бд
- как найти самую часто вызываемую или самую длительную функцию (зацикливание)
- почему не нажал кнопку Стоп выполнения в отладке
- почему в проекте нед логирования (мы не видели)

про модель понятно - там все делалось на коленке
как найти самую частую и длительную функцию я не знаю - было бы неплохо если бы рассказал ( без сарказма)
логирования есть ,но минимальное
почему не нажал стоп? потому что я думал что проблема вообще в не этом - сначала думал на память,потом на дедлок и тд,но только не на замкнутый цикл - ну и собственно там настолько сложная вложенность - что я сомневаюсь смог бы я увидеть это
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063727
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
>как найти самую частую и длительную функцию я не знаю - было бы неплохо если бы рассказал ( без сарказма)
= я знаю как в шарпе и постгре. Тут не знаю. Профи подскажут.
>почему не нажал стоп? потому что я думал что проблема вообще в не этом
==)))))))))))))))
Я так и думал. Тебе некогда было. Ты за петро гонялся.
Я эту кнопу очень часто нажимаю. Как без них то.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063728
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
>настолько сложная вложенность - что я сомневаюсь смог бы я увидеть это
= показывай.... Вместе со стеком. Чем занят комп.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063730
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не верю что тут никто не профилировал java по тяжести методов вызовов.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063741
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF/2
Что касается профилировки в шарпе и посгри

Постгри
- выставить флаг log_min_duration_statement=3000
В логах бут все тяжелые запросы более 3сек

Шарп
- IDE - Analyze - Perfofmance Profiler - указать проект.
Получем ДЕРЕВООБРАЗНЫЙ вид всех вызываемых методов с тяжестью-временем.

Java
-?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063757
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Постгри
- выставить флаг log_min_duration_statement=3000
В логах бут все тяжелые запросы более 3сек

А какой смысл вкладывается в duration? В SQL-Запросах есть фаза execution когда данные сортируются джойнятся
и группируются. И есть фаза fetch когда курсор уже начинает выдавать в сеть строки row-by-row.

У Стаса КМК - имеет место второй тип нагрузки когда execution очень быстрый. Но долго занимает fetch.
Он же там всю базу куда-то переливает.

Тоесть если фильтровать по log_min_duration_statement то там может быть ничего и не будет. Т.к. фаза исполнения
курсора (ожидание его до выдачи первой строки) будет быстрой.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063760
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Выше было Офф пополам.
Это значит вопрос не стаса а Профилирование "чем занят комп".
Вопрос как это сделать в java?))
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063763
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

А какой смысл вкладывается в duration? ... И есть фаза fetch когда курсор уже начинает выдавать в сеть строки row-by-row.

AFAIK постгрес не Oracle, он все одним куском шлет.

p.s. могу заблуждаться
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063765
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Не вникая в тонкости можно представить что в бесконечном цикле идет запрос select 1 from dual
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063767
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
mayton

А какой смысл вкладывается в duration? ... И есть фаза fetch когда курсор уже начинает выдавать в сеть строки row-by-row.

AFAIK постгрес не Oracle, он все одним куском шлет.

p.s. могу заблуждаться

По разному. Там кажется зависит от опций ResultSet. У меня даже был баг когда jdbc драйвер PG
вызывал OOM Exception.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063781
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращаемся к профилированию тяжелых процедур.
Вариант1
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public static void main(String[] args) {
    List<Object> items = new ArrayList<>(1);
    try {
    while (true){
            items.add(new Object());
        }
    } catch (OutOfMemoryError e){
        System.out.println(e.getMessage());
    }
    assert items.size() > 0;
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        System.out.println(e.getMessage());
    }
}


Инструмент - JFR
https://www.baeldung.com/java-flight-recorder-monitoring
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063793
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думал, что проблема не там(с) - давно так не смеялся,до слез фактически. Фраза просто в меморис. Действительно - зачем дебажить, взглянул разок на код и понятно как он работает)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063880
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Не верю что тут никто не профилировал java по тяжести методов вызовов.


в бою это нафиг не уперлось:
- для знакомого кода достаточно пары-тройки дампов потоков, чтобы "угадать" что там происходит
- для новичков какой-нить flamegraph подойдет
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063882
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Что то неверится.
Чем плохо тут
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063891
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Что то неверится.
Чем плохо тут


даже если повезет найти продуктовую среду, к которой удастся подключиться этой хренью (давно видели врубленный JMX-то?) через пачку VPN и джамп-хосты, то оно жаву завалит еще до отображения первых картинок, поэтому для прода основной инструмент - это дампы потоков и памяти (нужно только Operations научить их делать), а профайлер разве что для разработки подходит.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063895
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Ну, во первых мы о локальной среде а не продуктовой. Во вторых, инструмент специально создан чтобы не тормозить осн код.
А про Flame графики я согласен что они оригинальны.
Но ведь это собирательное название?
Инструмент то какой например выдаст график?
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063897
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удаленную отладку предлагаю не рассматривать. ТС новичок)
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063899
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Хоспидя..."
Агента для удалённой отладки даже я запускал, когда это требовалось разработчику.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063902
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
"Хоспидя..."
Агента для удалённой отладки даже я запускал, когда это требовалось разработчику.
))
ТС никак кнопу Стоп не нажмет и стек сюда не покажет.
)))
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063916
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Посмотрел профилировщик для графика вида Flame.
https://github.com/jvm-profiling-tools/async-profiler/
Получается он Не для винды(
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063961
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

По разному. Там кажется зависит от опций ResultSet. У меня даже был баг когда jdbc драйвер PG
вызывал OOM Exception.

AFAIK только целиком

Есть вариант, когда одна SQL-инструкция бьется на несколько и явно на сервер отсылаются server-side cursor команды OPEN, FETCH etc... НО это как раз то исключение, которое только подтверждает правило, что никаких "выдавать в сеть строки row-by-row." нет.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063962
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Есть вариант, когда одна SQL-инструкция бьется на несколько и явно на сервер отсылаются server-side cursor команды OPEN, FETCH etc... НО это как раз то исключение, которое только подтверждает правило, что никаких "выдавать в сеть строки row-by-row." нет.


да ладно...

https://jdbc.postgresql.org/documentation/head/query.html#fetchsize-exampleBy default the driver collects all the results for the query at once. This can be inconvenient for large data sets so the JDBC driver provides a means of basing a ResultSet on a database cursor and only fetching a small number of rows.

A small number of rows are cached on the client side of the connection and when exhausted the next block of rows is retrieved by repositioning the cursor.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063968
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Leonid Kudryavtsev

Есть вариант, когда одна SQL-инструкция бьется на несколько и явно на сервер отсылаются server-side cursor команды OPEN, FETCH etc... НО это как раз то исключение, которое только подтверждает правило, что никаких "выдавать в сеть строки row-by-row." нет.


да ладно...

https://jdbc.postgresql.org/documentation/head/query.html#fetchsize-exampleBy default the driver collects all the results for the query at once. This can be inconvenient for large data sets so the JDBC driver provides a means of basing a ResultSet on a database cursor and only fetching a small number of rows.

A small number of rows are cached on the client side of the connection and when exhausted the next block of rows is retrieved by repositioning the cursor.


Ровно то, о чем я и говорил!

a means of basing a ResultSet on a database cursor

одна SQL-инструкция бьется на несколько и явно на сервер отсылаются server-side cursor команды OPEN, FETCH etc...
...
Рейтинг: 0 / 0
Блокировка потоков
    #40063969
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одна команда = один ответ

Никакого row-by-row на транспортном уровне PostgreSQL не умеет. В полном отличие от Oracle, где наоборот, проблема с производительность может быть именно из-за row-by-row и приходится делать batch/fetch size )))

AFAIK
...
Рейтинг: 0 / 0
Блокировка потоков
    #40064010
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

чет я все равно не догнал: вот есть БД, мы с ней по tcp/ip общаемся, чтобы она нам новую строку отдала, нам же нужно как-то ее об этом спросить, сама же она об этом не догадается, разве нет? Значит нужно какой-то RPC слать, а как он называется не особо интересно. Вон в оракле пишут что оно по 10 строк отдает по умолчанию:

https://docs.oracle.com/cd/E18283_01/java.112/e16548/resltset.htmBy default, when Oracle JDBC runs a query, it retrieves a result set of 10 rows at a time from the database cursor. This is the default Oracle row fetch size value. You can change the number of rows retrieved with each trip to the database cursor by changing the row fetch size value.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40064013
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Ну типо так
https://docs.microsoft.com/ru-ru/sql/ado/reference/ado-api/cachesize-property-ado?view=sql-server-ver15
Продвигаясь в цикле в коде по одной драйвер берет сразу несколько.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40064014
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

ну, в Oracle и PostgreSQL точно также, просто в первом размер чанка 10 по-умолчанию, а во втором по умолчанию выгребает все что можно.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40064017
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,

Все что можно неудобно. У меня код стоял на открытии запроса 30 сек. И все висело. Пока шло по сети.
...
Рейтинг: 0 / 0
Блокировка потоков
    #40064109
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Девочки - вы очаровашки. Я думаю топик можно закрыть.
...
Рейтинг: 0 / 0
114 сообщений из 114, показаны все 5 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Блокировка потоков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]