Deadlock when using feign in @PostConstruct with CompletableFuture
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia con il percorso @PostConstruct segnalato e l’esecuzione di CompletableFuture mostrata nel thread dump. Traccia le chiamate attraverso SpringDecoder, ResponseEntityDecoder e SynchronousMethodHandler, quindi riproduci la chiamata Feign da CompletableFuture durante l’inizializzazione del bean. Il lavoro è completato quando viene identificata la causa del deadlock e viene documentata o verificata una risoluzione sicura.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
"ForkJoinPool.commonPool-worker-1" #39 daemon prio=5 os_prio=31 cpu=2.77ms elapsed=14.76s tid=0x000000015e4a4600 nid=0x8c0b waiting for monitor entry [0x0000000170441000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:217)
- waiting to lock <0x0000000700dfab40> (a java.util.concurrent.ConcurrentHashMap)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:275)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
at org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.getObject(DefaultListableBeanFactory.java:2070)
at org.springframework.cloud.openfeign.support.SpringDecoder.decode(SpringDecoder.java:66)
at org.springframework.cloud.openfeign.support.ResponseEntityDecoder.decode(ResponseEntityDecoder.java:62)
at feign.optionals.OptionalDecoder.decode(OptionalDecoder.java:36)
at feign.InvocationContext.decode(InvocationContext.java:114)
at feign.InvocationContext.proceed(InvocationContext.java:88)
at feign.ResponseInterceptor$Chain$$Lambda$1184/0x000000b001941a48.next(Unknown Source)
at feign.ResponseHandler.handleResponse(ResponseHandler.java:63)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:114)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:70)
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:99)
at jdk.proxy2.$Proxy159.fetch(jdk.proxy2/Unknown Source)
at hiyen.galmanhae.dataprocess.application.CongestionService.fetch(CongestionService.java:22)
at hiyen.galmanhae.dataprocess.DataProcessor.aggregatePlace(DataProcessor.java:61)
at hiyen.galmanhae.dataprocess.DataProcessor.lambda$toFuture$0(DataProcessor.java:50)
at hiyen.galmanhae.dataprocess.DataProcessor$$Lambda$1520/0x000000b001b86a68.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.run([email protected]/CompletableFuture.java:1768)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec([email protected]/CompletableFuture.java:1760)
at java.util.concurrent.ForkJoinTask.doExec([email protected]/ForkJoinTask.java:373)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec([email protected]/ForkJoinPool.java:1182)
at java.util.concurrent.ForkJoinPool.scan([email protected]/ForkJoinPool.java:1655)
at java.util.concurrent.ForkJoinPool.runWorker([email protected]/ForkJoinPool.java:1622)
at java.util.concurrent.ForkJoinWorkerThread.run([email protected]/ForkJoinWorkerThread.java:165)
"ForkJoinPool.commonPool-worker-2" #40 daemon prio=5 os_prio=31 cpu=3.25ms elapsed=14.76s tid=0x000000015e4a4c00 nid=0x9e1b waiting for monitor entry [0x000000017064d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:217)
- waiting to lock <0x0000000700dfab40> (a java.util.concurrent.ConcurrentHashMap)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:275)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
at org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.getObject(DefaultListableBeanFactory.java:2070)
at org.springframework.cloud.openfeign.support.SpringDecoder.decode(SpringDecoder.java:66)
at org.springframework.cloud.openfeign.support.ResponseEntityDecoder.decode(ResponseEntityDecoder.java:62)
at feign.optionals.OptionalDecoder.decode(OptionalDecoder.java:36)
at feign.InvocationContext.decode(InvocationContext.java:114)
at feign.InvocationContext.proceed(InvocationContext.java:88)
at feign.ResponseInterceptor$Chain$$Lambda$1184/0x000000b001941a48.next(Unknown Source)
at feign.ResponseHandler.handleResponse(ResponseHandler.java:63)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:114)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:70)
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:99)
at jdk.proxy2.$Proxy159.fetch(jdk.proxy2/Unknown Source)
at hiyen.galmanhae.dataprocess.application.CongestionService.fetch(CongestionService.java:22)
at hiyen.galmanhae.dataprocess.DataProcessor.aggregatePlace(DataProcessor.java:61)
at hiyen.galmanhae.dataprocess.DataProcessor.lambda$toFuture$0(DataProcessor.java:50)
at hiyen.galmanhae.dataprocess.DataProcessor$$Lambda$1520/0x000000b001b86a68.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.run([email protected]/CompletableFuture.java:1768)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec([email protected]/CompletableFuture.java:1760)
at java.util.concurrent.ForkJoinTask.doExec([email protected]/ForkJoinTask.java:373)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec([email protected]/ForkJoinPool.java:1182)
at java.util.concurrent.ForkJoinPool.scan([email protected]/ForkJoinPool.java:1655)
at java.util.concurrent.ForkJoinPool.runWorker([email protected]/ForkJoinPool.java:1622)
at java.util.concurrent.ForkJoinWorkerThread.run([email protected]/ForkJoinWorkerThread.java:165)
I have no problem when using feignclient in @PostConstruct but when I use it with CompletableFuture, I get above deadlock
- Lingua principale
- Java
- Stelle
- 9.8k
- Fork
- 2k
- Merge medio
- 1h 15m
- PR unite (30g)
- 39
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenFeign/feign
-
DefaultAsyncClient never completes the returned future when Client throws ErrorForse già presa @hutiefang76 l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Response.charset ignores charset after another Content-Type parameterForse già presa @hutiefang76 l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
UriUtils ignores allowReservedCharacters=false when the input has no percent tripletForse già presa @hutiefang76 l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Java11 Http2Client loses response header value order and duplicate occurrencesForse già presa @hutiefang76 l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Java11 Http2Client rejects documented zero connect and read timeoutsForse già presa @hutiefang76 l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di OpenFeign/feign
Issue simili
-
5.0.x backport enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
spring-cloud/spring-cloud-function#1507 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
open-learning-exchange/myplanet#18484 ·
I maintainer di solito rispondono entro 1 giorno
-
ai-driven-fuzzing bug claude Minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
linagora/twake-calendar-side-service#1417 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
line/armeria#7109 · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
open-feature/java-sdk-contrib#1966 ·
I maintainer di solito rispondono entro 1 giorno