Время от времени наш производственный экземпляр JFrog Artifactory становится частично недоступным. Во время этих инцидентов страница входа не загружается, и все запросы аутентификации пользователя не выполняются, хотя некоторые конечные точки API продолжают отвечать. Система не выходит из строя и не перезагружается, использование ЦП и памяти остается в пределах нормального диапазона, проверки готовности и работоспособности продолжают сообщать «ОК», а конечная точка /router/api/v1/system/health сообщает обо всех микросервисах как «ЗДОРОВЫЕ».
Мы проверили console.log , который неоднократно регистрирует следующую ошибку:
2025-12-12T18:39:59.509L [35m[tomct][0m [ПРЕДУПРЕЖДЕНИЕ] [ ] [io.grpc.netty.NettyServerHandler] [io.grpc.netty.NettyServerHandler onHeadersRead] — исключение в onHeadersRead()
java.util.concurrent.RejectedExecutionException: Задача io.grpc.internal.SerializingExecutor@6840f075 отклонена из java.util.concurrent.ThreadPoolExecutor@f2b035b [Выполняется, размер пула = 50, активные потоки = 50, задачи в очереди = 0, завершенные задачи = 611037]
На момент инцидента мы создали дампы потоков для службы jf-access. В одном из 50 заблокированных потоков отображается следующая трассировка стека:
"jf-access-grpc-293" #254480 [1695216] daemon prio=5 os_prio=0 cpu=11.66ms elapsed=2323.22s tid=0x00007f2a743b36c0 nid=1695216 ожидание по условию [0x00007f2a3c4fd000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@21.0.8/Native Method)
- парковка, которую нужно дождаться (java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@21.0.8/LockSupport.java:371)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@21.0.8/AbstractQueuedSynchronizer.java:519)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@21.0.8/ForkJoinPool.java:3780)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@21.0.8/ForkJoinPool.java:3725)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.8/AbstractQueuedSynchronizer.java:1712)
at java.util.concurrent.ArrayBlockingQueue.take(java.base@21.0.8/ArrayBlockingQueue.java:420)
at io.grpc.stub.ClientCalls$BlockingResponseStream.waitForNext(ClientCalls.java:690)
at io.grpc.stub.ClientCalls$BlockingResponseStream.hasNext(ClientCalls.java:709)
at java.util.Iterator.forEachRemaining(java.base@21.0.8/Iterator.java:132)
at org.jfrog.access.server.service.jfconfig.client.config.ConfigClient.lambda$getConfigByPatternStream$3(ConfigClient.java:82)
at org.jfrog.access.server.service.jfconfig.client.config.ConfigClient$$Lambda/0x00007f2ab541a238.accept(Неизвестный источник)
at java.util.Optional.ifPresent(java.base@21.0.8/Optional.java:178)
at org.jfrog.access.server.service.jfconfig.client.config.ConfigClient.getConfigByPatternStream(ConfigClient.java:82)
at org.jfrog.access.server.service.jfconfig.JFConfigService.getConfigByPattern(JFConfigService.java:108)
at org.jfrog.access.server.service.auth.ldap.LdapGroupSettingStorage.list(LdapGroupSettingStorage.java:38)
Остальные 49 потоков следуют одному и тому же шаблону выполнения:
"jf-access-grpc-217" #182116 [1228419] daemon prio=5 os_prio=0 cpu=7111.59ms elapsed=182097.62s tid=0x00007f2a744217e0 nid=1228419 ожидание по условию [0x00007f2a38bfd000]
java.lang.Thread.State: WAITING (парковка)
at jdk.internal.misc.Unsafe.park(java.base@21.0.8/Native Method)
- парковка для ожидания (com.google.common.util.concurrent.SettableFuture)
на java.util.concurrent.locks.LockSupport.park(java.base@21.0.8/LockSupport.java:221)
на com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:561)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111)
на com.google.common.util.concurrent.Uninterruptibles.getUninterruptible(Uninterruptibles.java:247)
at com.google.common.cache.LocalCache$LoadingValueReference.waitForValue(LocalCache.java:3628)
at com.google.common.cache.LocalCache$Segment.waitForLoadingValue(LocalCache.java:2211)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2198)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2081)
at com.google.common.cache.LocalCache.get(LocalCache.java:4019)
на com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4042)
на com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5024)
at com.google.common.cache.ForwardingLoadingCache.get(ForwardingLoadingCache.java:48)
at org.jfrog.access.server.service.auth.ldap.LdapGroupServiceImpl.syncPopulatedUserGroups(LdapGroupServiceImpl.java:202)
Мы подозреваем, что служба jf-access может испытывать взаимоблокировку или нехватку пула потоков, связанную со службой jfconfig.
Будем очень признательны за любую помощь или поддержку по этой теме!
Подробнее здесь: https://stackoverflow.com/questions/798 ... nexception
JFrog Artifactory недоступен; ОтклоненоExecutionException ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1765821562
Anonymous
Время от времени наш производственный экземпляр JFrog Artifactory становится частично недоступным. Во время этих инцидентов страница входа не загружается, и все запросы аутентификации пользователя не выполняются, хотя некоторые конечные точки API продолжают отвечать. Система не выходит из строя и не перезагружается, использование ЦП и памяти остается в пределах нормального диапазона, проверки готовности и работоспособности продолжают сообщать «ОК», а конечная точка /router/api/v1/system/health сообщает обо всех микросервисах как «ЗДОРОВЫЕ».
Мы проверили console.log , который неоднократно регистрирует следующую ошибку:
2025-12-12T18:39:59.509L [35m[tomct][0m [ПРЕДУПРЕЖДЕНИЕ] [ ] [io.grpc.netty.NettyServerHandler] [io.grpc.netty.NettyServerHandler onHeadersRead] — исключение в onHeadersRead()
java.util.concurrent.RejectedExecutionException: Задача io.grpc.internal.SerializingExecutor@6840f075 отклонена из java.util.concurrent.ThreadPoolExecutor@f2b035b [Выполняется, размер пула = 50, активные потоки = 50, задачи в очереди = 0, завершенные задачи = 611037]
На момент инцидента мы создали дампы потоков для службы jf-access. В одном из 50 заблокированных потоков отображается следующая трассировка стека:
"jf-access-grpc-293" #254480 [1695216] daemon prio=5 os_prio=0 cpu=11.66ms elapsed=2323.22s tid=0x00007f2a743b36c0 nid=1695216 ожидание по условию [0x00007f2a3c4fd000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@21.0.8/Native Method)
- парковка, которую нужно дождаться (java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@21.0.8/LockSupport.java:371)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@21.0.8/AbstractQueuedSynchronizer.java:519)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@21.0.8/ForkJoinPool.java:3780)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@21.0.8/ForkJoinPool.java:3725)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.8/AbstractQueuedSynchronizer.java:1712)
at java.util.concurrent.ArrayBlockingQueue.take(java.base@21.0.8/ArrayBlockingQueue.java:420)
at io.grpc.stub.ClientCalls$BlockingResponseStream.waitForNext(ClientCalls.java:690)
at io.grpc.stub.ClientCalls$BlockingResponseStream.hasNext(ClientCalls.java:709)
at java.util.Iterator.forEachRemaining(java.base@21.0.8/Iterator.java:132)
at org.jfrog.access.server.service.jfconfig.client.config.ConfigClient.lambda$getConfigByPatternStream$3(ConfigClient.java:82)
at org.jfrog.access.server.service.jfconfig.client.config.ConfigClient$$Lambda/0x00007f2ab541a238.accept(Неизвестный источник)
at java.util.Optional.ifPresent(java.base@21.0.8/Optional.java:178)
at org.jfrog.access.server.service.jfconfig.client.config.ConfigClient.getConfigByPatternStream(ConfigClient.java:82)
at org.jfrog.access.server.service.jfconfig.JFConfigService.getConfigByPattern(JFConfigService.java:108)
at org.jfrog.access.server.service.auth.ldap.LdapGroupSettingStorage.list(LdapGroupSettingStorage.java:38)
Остальные 49 потоков следуют одному и тому же шаблону выполнения:
"jf-access-grpc-217" #182116 [1228419] daemon prio=5 os_prio=0 cpu=7111.59ms elapsed=182097.62s tid=0x00007f2a744217e0 nid=1228419 ожидание по условию [0x00007f2a38bfd000]
java.lang.Thread.State: WAITING (парковка)
at jdk.internal.misc.Unsafe.park(java.base@21.0.8/Native Method)
- парковка для ожидания (com.google.common.util.concurrent.SettableFuture)
на java.util.concurrent.locks.LockSupport.park(java.base@21.0.8/LockSupport.java:221)
на com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:561)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111)
на com.google.common.util.concurrent.Uninterruptibles.getUninterruptible(Uninterruptibles.java:247)
at com.google.common.cache.LocalCache$LoadingValueReference.waitForValue(LocalCache.java:3628)
at com.google.common.cache.LocalCache$Segment.waitForLoadingValue(LocalCache.java:2211)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2198)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2081)
at com.google.common.cache.LocalCache.get(LocalCache.java:4019)
на com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4042)
на com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5024)
at com.google.common.cache.ForwardingLoadingCache.get(ForwardingLoadingCache.java:48)
at org.jfrog.access.server.service.auth.ldap.LdapGroupServiceImpl.syncPopulatedUserGroups(LdapGroupServiceImpl.java:202)
Мы подозреваем, что служба jf-access может испытывать взаимоблокировку или нехватку пула потоков, связанную со службой jfconfig.
Будем очень признательны за любую помощь или поддержку по этой теме!
Подробнее здесь: [url]https://stackoverflow.com/questions/79847637/jfrog-artifactory-is-not-accessible-rejectedexecutionexception[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия