Comments (6)
Started to debug this.
added to the lyra code in ConnectionHandler
a small list to hold all the "new" delegates that been created
in line 225 (ConnectionHandler#createConnection
function)
Found that, after a recovery, a new connection is been created (this is fine) but the old one is still "alive" because of the automaticRecovery
flag is true
in the ConnectionFactory
class.
Tried to set it to false, seems to be working, the JVM does shuts down. but not right away.
any idea why?
from lyra.
Because Java client starting with 4.0 enables automatic recovery by default and uses non-daemon threads (also by default). Lyra should disable automatic recovery in the Java client because it performs its own.
from lyra.
@acogoluegnes there is a way to reproduce here. We will look into adding a new property, just like in the Java client.
from lyra.
There's a static executor service that is never shut down. With a modified version of @DimaGolomozy's test, the JVM shutdown after 1 minute, which is the default value of keep-alive time for the executor service.
Not sure how to fix this without regression.
from lyra.
My bad, the executor service is shut down in shutdown hook. Chicken-and-egg problem.
from lyra.
#83 should do part of the job, but #84 is the biggest problem. There may also other cases where the executor service used for connections is not correctly closed.
from lyra.
Related Issues (20)
- Recovery of the connection in RabbitMQ for Clustered environment HOT 1
- Reconnection after RabbitMQ shutdown is not successful HOT 5
- when java.net.UnknownHostException is thrown the recovery failed
- What about moving to the latest 'amqp-client' version?
- Forgotten copying of automaticRecovery in ConnectionOptions.copy() HOT 1
- Documentation on ConnectionFactory used in ConnectionOptions HOT 2
- support withUri() in ConnectionOptions HOT 5
- Moving to latest RabbitMQ Java Client 4.0 HOT 5
- Why to copy ConnectionFactory on each create HOT 7
- No communication after recovery HOT 4
- Consumers not getting messages after broker restart HOT 8
- Connection name is not passed HOT 8
- RabbitMQ flooded by new connections HOT 5
- Get rid of static executor service HOT 2
- Rapid growth of connections when network conditions are unreliable HOT 3
- retryableExceptions configuration and implementation HOT 3
- Use a `Predicate` for retry exception strategy
- Getting Rabbitmq HeartBeat Exception HOT 3
- Lyra is no longer under active development. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lyra.