Comments (3)
I just conducted an experiment by switching on logging and also adding a line to log the connection acquired (it would be useful if always did this). With the debugging on, I can see that it closed an idle connection and then handed it to me on the next acquire. My request then immediately failed with "Requests can only be made in the Logged In state"
from tedious-connection-pool.
Done a bit of debugging on this with my own copy. There main issue is that there is a gap between the idle timeout being called and the connection end event being emitted. In that gap the status of the pool for this connection is FREE. As a result new requests can pick this connection up that is in the process of closing and try and re-use them.
The reason that I am seeing the problem quite frequently however (normally a request to close and the end event are very close together) is that once a connection has been used and the reset been called it does not seem to emit the end event. With debug log on, I can see the reset but never see the end. Is the a tedious issue?
from tedious-connection-pool.
OK, all understood now.
The reason I was not seeing the connection end was I had removed all listeners from the connection at the end of the request. So this was making the gap between timing out and closing the connection, and this connection being removed from the connection pool infinitely long. This was a bug on my part and I have fixed it.
I am not sure if there is a gap now between the connection close from the timeout and the connection end being omitted, but why take the chance. I have issued a pull request ( #31 ) that closes that small hole.
In getting to the bottom of this I found it immensely helpful to also know when a connection was acquired, so I have added another pull request #30 which adds that additional line to the logging.
I'll close this issue now
from tedious-connection-pool.
Related Issues (20)
- Issue with connection closed HOT 13
- Update memory-usage test to add validation. HOT 2
- Error: Acquire Timeout Exceeded for queued queries. HOT 6
- error thrown in tedious-connection-pool when calling release() HOT 2
- Acquire calls do not timeout if pool is drained.
- Support tedious 2.0.1? HOT 3
- Allow prepared statements to persist across returning a connection to the pool HOT 2
- new maintainer ? HOT 4
- Multiple Request On Multiple Connection HOT 1
- Error: connection.release is not a function HOT 1
- Incompatibility with Rollup HOT 1
- ConnectionError: Failed to connect to <server name> in 15000ms
- 1.0.5 release may be incompatible with tedious 5.x release HOT 1
- Pause()/resume() doesn't work as expected with connection from connectionPool
- Pool fills up with 'USED' connections - node app restart required as a result HOT 1
- Timeouts don't seem to work as expected
- Draining the pool after releasing connections may cause write to destroyed stream HOT 3
- TypeError: cb is not a function HOT 2
- Is this project dead? HOT 7
- request.transformIntoExecuteSqlRpc() is not a function HOT 4
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 tedious-connection-pool.