CodeFoodPixels / node-promise-mysql

A wrapper for mysqljs/mysql that wraps function calls with Bluebird promises.
MIT License
338 stars 64 forks source link

Getting MySQL Handshake timeout? #56

Closed fsck-mount closed 7 years ago

fsck-mount commented 7 years ago

I'm getting the following error when trying to connect to MySQL instance.

Error: Handshake inactivity timeout
  at Handshake.<anonymous> (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:160:17)
  at emitNone (events.js:86:13)
  at Handshake.emit (events.js:188:7)
  at Handshake._onTimeout (/srv/vtap/node_modules/mysql/lib/protocol/sequences/Sequence.js:127:8)
  at ontimeout (timers.js:386:14)
  at tryOnTimeout (timers.js:250:5)
  at Timer.listOnTimeout (timers.js:214:5)
  --------------------
  at Protocol._enqueue (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:141:48)
  at Protocol.handshake (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:52:41)
  at PoolConnection.connect (/srv/vtap/node_modules/mysql/lib/Connection.js:130:18)
  at Pool.getConnection (/srv/vtap/node_modules/mysql/lib/Pool.js:48:16)
  at Pool.wrap_getConnection [as getConnection] (/srv/vtap/node_modules/newrelic/lib/instrumentation/mysql.js:208:34)
  at Pool.query (/srv/vtap/node_modules/mysql/lib/Pool.js:202:8)
  at Pool.wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28)
  at Pool.wrappedFunction [as query] (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:391:55)
  at /srv/vtap/node_modules/promise-mysql/lib/helper.js:16:24
  at Promise.wrappedExecutorCaller [as _execute] (/srv/vtap/node_modules/newrelic/lib/instrumentation/promise.js:222:18)
  at Promise._resolveFromExecutor (/srv/vtap/node_modules/bluebird/js/release/promise.js:483:18)
  at new Promise (/srv/vtap/node_modules/bluebird/js/release/promise.js:79:10)
  at Pool.promiseCallback (/srv/vtap/node_modules/promise-mysql/lib/helper.js:6:10)
  at pool.query (/srv/vtap/node_modules/promise-mysql/lib/pool.js:23:28)
  at Object.getAllDetails (/srv/vtap/models/users.js:16:29)
  at Object.action (/srv/vtap/services/clickStream.js:14:17)
  at onMessage (/srv/vtap/processor.js:186:29)
  at /srv/vtap/utils/kafka-consumer.js:50:6
  at wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28)
  at createBackgroundSegment (/srv/vtap/node_modules/newrelic/api.js:703:54)
  at wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28)
  at wrapTransactionInvocation (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:158:50)
code: 'PROTOCOL_SEQUENCE_TIMEOUT',
fatal: true,
timeout: 10000 }
CodeFoodPixels commented 7 years ago

I need more information than a stack trace.

The issue is also probably not coming from promise-mysql, but from the actual mysqljs library that promise-mysql wraps.

On Sat, 1 Jul 2017, 09:02 Gowtham Sai, notifications@github.com wrote:

I'm getting the following error when trying to connect to MySQL instance.

Error: Handshake inactivity timeout at Handshake. (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:160:17) at emitNone (events.js:86:13) at Handshake.emit (events.js:188:7) at Handshake._onTimeout (/srv/vtap/node_modules/mysql/lib/protocol/sequences/Sequence.js:127:8) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)

at Protocol._enqueue (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:141:48) at Protocol.handshake (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:52:41) at PoolConnection.connect (/srv/vtap/node_modules/mysql/lib/Connection.js:130:18) at Pool.getConnection (/srv/vtap/node_modules/mysql/lib/Pool.js:48:16) at Pool.wrap_getConnection [as getConnection] (/srv/vtap/node_modules/newrelic/lib/instrumentation/mysql.js:208:34) at Pool.query (/srv/vtap/node_modules/mysql/lib/Pool.js:202:8) at Pool.wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) at Pool.wrappedFunction [as query] (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:391:55) at /srv/vtap/node_modules/promise-mysql/lib/helper.js:16:24 at Promise.wrappedExecutorCaller [as _execute] (/srv/vtap/node_modules/newrelic/lib/instrumentation/promise.js:222:18) at Promise._resolveFromExecutor (/srv/vtap/node_modules/bluebird/js/release/promise.js:483:18) at new Promise (/srv/vtap/node_modules/bluebird/js/release/promise.js:79:10) at Pool.promiseCallback (/srv/vtap/node_modules/promise-mysql/lib/helper.js:6:10) at pool.query (/srv/vtap/node_modules/promise-mysql/lib/pool.js:23:28) at Object.getAllDetails (/srv/vtap/models/users.js:16:29) at Object.action (/srv/vtap/services/clickStream.js:14:17) at onMessage (/srv/vtap/processor.js:186:29) at /srv/vtap/utils/kafka-consumer.js:50:6 at wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) at createBackgroundSegment (/srv/vtap/node_modules/newrelic/api.js:703:54) at wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) at wrapTransactionInvocation (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:158:50) code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true, timeout: 10000 }

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/lukeb-uk/node-promise-mysql/issues/56, or mute the thread https://github.com/notifications/unsubscribe-auth/AEjy1PtWEsfIqE2pH-JSDb_fnpBcndPpks5sJf0rgaJpZM4OLQDv .

CodeFoodPixels commented 7 years ago

According to https://github.com/mysqljs/mysql/issues/1106#issuecomment-105545681, this happens when the mysql server connects but fails to respond within the timeout period (which defaults to 10 seconds). There's probably an issue on your mysql server.

On Sat, 1 Jul 2017, 09:21 Luke Bonaccorsi, luke@lukeb.co.uk wrote:

I need more information than a stack trace.

The issue is also probably not coming from promise-mysql, but from the actual mysqljs library that promise-mysql wraps.

On Sat, 1 Jul 2017, 09:02 Gowtham Sai, notifications@github.com wrote:

I'm getting the following error when trying to connect to MySQL instance.

Error: Handshake inactivity timeout at Handshake. (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:160:17) at emitNone (events.js:86:13) at Handshake.emit (events.js:188:7) at Handshake._onTimeout (/srv/vtap/node_modules/mysql/lib/protocol/sequences/Sequence.js:127:8) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)

at Protocol._enqueue (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:141:48) at Protocol.handshake (/srv/vtap/node_modules/mysql/lib/protocol/Protocol.js:52:41) at PoolConnection.connect (/srv/vtap/node_modules/mysql/lib/Connection.js:130:18) at Pool.getConnection (/srv/vtap/node_modules/mysql/lib/Pool.js:48:16) at Pool.wrap_getConnection [as getConnection] (/srv/vtap/node_modules/newrelic/lib/instrumentation/mysql.js:208:34) at Pool.query (/srv/vtap/node_modules/mysql/lib/Pool.js:202:8) at Pool.wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) at Pool.wrappedFunction [as query] (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:391:55) at /srv/vtap/node_modules/promise-mysql/lib/helper.js:16:24 at Promise.wrappedExecutorCaller [as _execute] (/srv/vtap/node_modules/newrelic/lib/instrumentation/promise.js:222:18) at Promise._resolveFromExecutor (/srv/vtap/node_modules/bluebird/js/release/promise.js:483:18) at new Promise (/srv/vtap/node_modules/bluebird/js/release/promise.js:79:10) at Pool.promiseCallback (/srv/vtap/node_modules/promise-mysql/lib/helper.js:6:10) at pool.query (/srv/vtap/node_modules/promise-mysql/lib/pool.js:23:28) at Object.getAllDetails (/srv/vtap/models/users.js:16:29) at Object.action (/srv/vtap/services/clickStream.js:14:17) at onMessage (/srv/vtap/processor.js:186:29) at /srv/vtap/utils/kafka-consumer.js:50:6 at wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) at createBackgroundSegment (/srv/vtap/node_modules/newrelic/api.js:703:54) at wrapped (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:184:28) at wrapTransactionInvocation (/srv/vtap/node_modules/newrelic/lib/transaction/tracer/index.js:158:50) code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true, timeout: 10000 }

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/lukeb-uk/node-promise-mysql/issues/56, or mute the thread https://github.com/notifications/unsubscribe-auth/AEjy1PtWEsfIqE2pH-JSDb_fnpBcndPpks5sJf0rgaJpZM4OLQDv .