mysql
mysql copied to clipboard
PROTOCOL_PACKETS_OUT_OF_ORDER on MariaDB 10.4 when reaching max_connections
When hitting the maximum number of connections on MariaDB 10.4 PROTOCOL_PACKETS_OUT_OF_ORDER
is returned instead of ER_CON_COUNT_ERROR
To reproduce run MariaDB 10.4 with max_connections
set to 10
then run the following snippet
const mysql = require('mysql')
const settings = {
user: process.env.MYSQL_USER,
host: process.env.MYSQL_HOST,
password: process.env.MYSQL_PASSWORD,
database: 'mysql',
port: process.env.MYSQL_PORT
}
const connections = []
for (let i = 0; i <= 10; i++) {
let conn = mysql.createConnection(settings)
conn.connect()
connections.push(conn)
}
const connection = mysql.createConnection(settings)
connection.query('SELECT 1', (err) => {
throw err
})
Here's the full trace
node test.js
events.js:288
throw er; // Unhandled 'error' event
^
Error: Packets out of order. Got: 1 Expected: 0
at Parser._tryReadPacketHeader (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:470:15)
at Parser.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:33:29)
at Protocol.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:88:28)
at Socket.<anonymous> (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:526:10)
at Socket.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:275:11)
at Socket.Readable.push (_stream_readable.js:209:10)
at TCP.onStreamRead (internal/stream_base_commons.js:186:23)
--------------------
at Protocol._enqueue (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:116:18)
at Object.<anonymous> (/home/rowan/tmp/mysql/test.js:13:10)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47
Emitted 'error' event on Connection instance at:
at Connection._handleProtocolError (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:423:8)
at Protocol.emit (events.js:311:20)
at Protocol._delegateError (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:398:10)
at Handshake.<anonymous> (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:153:12)
at Handshake.emit (events.js:311:20)
at Handshake.Sequence.end (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:78:12)
at Protocol.handleParserError (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:378:14)
at Parser._tryReadPacketHeader (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:478:10)
at Parser.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:33:29)
at Protocol.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:38:16) {
code: 'PROTOCOL_PACKETS_OUT_OF_ORDER',
fatal: true
}
Did you ever get this fixed?
I am now having this problem with the new version of XAMPP; works perfectly fine with older versions using 'localhost' and my MacBooks name, but breaks in the newer version using '192.168.0.*'
PLEASE DO NOT DOWNLOAD THE LATEST XAMPP 8.0.0, IT'S TRASH. I WAS FRUSTRATED FOR TWO DAYS STRAIGHT, ALMOST BURN DOWN MY MAC LAPTOP. HARD TO CONNECT, NOTHING IS WORKING. JUST DOWNLOAD THE OLD VERSION TO SAVE YOUR LIFE.
When hitting the maximum number of connections on MariaDB 10.4
PROTOCOL_PACKETS_OUT_OF_ORDER
is returned instead ofER_CON_COUNT_ERROR
To reproduce run MariaDB 10.4 with
max_connections
set to10
then run the following snippetconst mysql = require('mysql') const settings = { user: process.env.MYSQL_USER, host: process.env.MYSQL_HOST, password: process.env.MYSQL_PASSWORD, database: 'mysql', port: process.env.MYSQL_PORT } const connections = [] for (let i = 0; i <= 10; i++) { let conn = mysql.createConnection(settings) conn.connect() connections.push(conn) } const connection = mysql.createConnection(settings) connection.query('SELECT 1', (err) => { throw err })
Here's the full trace
node test.js events.js:288 throw er; // Unhandled 'error' event ^ Error: Packets out of order. Got: 1 Expected: 0 at Parser._tryReadPacketHeader (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:470:15) at Parser.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:33:29) at Protocol.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:38:16) at Socket.<anonymous> (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:88:28) at Socket.<anonymous> (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:526:10) at Socket.emit (events.js:311:20) at addChunk (_stream_readable.js:294:12) at readableAddChunk (_stream_readable.js:275:11) at Socket.Readable.push (_stream_readable.js:209:10) at TCP.onStreamRead (internal/stream_base_commons.js:186:23) -------------------- at Protocol._enqueue (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:144:48) at Protocol.handshake (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:51:23) at Connection.connect (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:116:18) at Object.<anonymous> (/home/rowan/tmp/mysql/test.js:13:10) at Module._compile (internal/modules/cjs/loader.js:1158:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10) at Module.load (internal/modules/cjs/loader.js:1002:32) at Function.Module._load (internal/modules/cjs/loader.js:901:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) at internal/main/run_main_module.js:18:47 Emitted 'error' event on Connection instance at: at Connection._handleProtocolError (/home/rowan/tmp/mysql/node_modules/mysql/lib/Connection.js:423:8) at Protocol.emit (events.js:311:20) at Protocol._delegateError (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:398:10) at Handshake.<anonymous> (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:153:12) at Handshake.emit (events.js:311:20) at Handshake.Sequence.end (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:78:12) at Protocol.handleParserError (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:378:14) at Parser._tryReadPacketHeader (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:478:10) at Parser.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Parser.js:33:29) at Protocol.write (/home/rowan/tmp/mysql/node_modules/mysql/lib/protocol/Protocol.js:38:16) { code: 'PROTOCOL_PACKETS_OUT_OF_ORDER', fatal: true }
Did you eventually figure it out?