JFrog Artifactory недоступен; ОтклоненоExecutionExceptionJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JFrog Artifactory недоступен; ОтклоненоExecutionException

Сообщение 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.
Будем очень признательны за любую помощь или поддержку по этой теме!

Подробнее здесь: https://stackoverflow.com/questions/798 ... nexception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»