Skip to content

Handshake Inactivity Timeout - PROTOCOL_SEQUENCE_TIMEOUT in 2.4.1 #883

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
inspectlet opened this issue Jul 25, 2014 · 5 comments
Closed
Labels

Comments

@inspectlet
Copy link

I'm upgrading from 2.0.0-alpha9 to 2.4.1 and I'm seeing a "handshake inactivity timeout" fatal error with code "PROTOCOL_SEQUENCE_TIMEOUT", any idea why this could be happening?

Some background: our servers are on Heroku using AWS RDS.

I've seen that these errors happen at least when Heroku dynos are restarted (like after a deploy), and continue to happen for about 2 minutes until they die down. I'm also using the connection pooling and give each worker in the cluster a pool of up to 5 nodes.

This morning we saw that the MySQL DBs had completely blocked Heroku hosts, probably due to very frequent reconnection. I've since downgraded back to 2.0.0-alpha9 and I'm unable to reproduce the problem locally.

Any help figuring out what's going on is greatly appreciated :)

@dougwilson
Copy link
Member

Hi!

So back in the old versions, there were no timeouts at all. Now that there are actually timeouts, you are just bumping into one. What you'll want to do is adjust your pool config option for acquireTimeout to something higher.

@purejs
Copy link

purejs commented Nov 5, 2014

Seems the unit of acquireTimeout is millisecond rather than second. So the doc somehow is misleading by the description of its default value.

@dougwilson
Copy link
Member

Ho so? The very first words are "The milliseconds before a timeout occurs during the connection acquisition" stating that it's milliseconds. The default value is easier to read as "10 seconds" instead of "10000 milliseconds", and it's also not a literal value, since it's not in a code block like the other defaults are.

@onury
Copy link

onury commented Nov 30, 2014

I agree with @purejs. Turns out, I've configured the value 10 bec. of the docs. What's hard to read with "10000 milliseconds"?

dougwilson added a commit that referenced this issue Nov 30, 2014
@dougwilson
Copy link
Member

Ok, I have just updated the documentation to show the literal default value so you no longer need to read the docs to see the value takes milliseconds.

@mysqljs mysqljs locked and limited conversation to collaborators Nov 30, 2014
seangarner pushed a commit to seangarner/node-mysql that referenced this issue May 11, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

4 participants