[CONJS-196] Disconnect event not caught Created: 2022-05-23  Updated: 2022-07-01  Resolved: 2022-07-01

Status: Closed
Project: MariaDB Connector/node.js
Component/s: pool
Affects Version/s: 3.0.0
Fix Version/s: 3.0.1

Type: Bug Priority: Major
Reporter: Diego Dupin Assignee: Diego Dupin
Resolution: Fixed Votes: 0
Labels: None


 Description   

see https://github.com/mariadb-corporation/mariadb-connector-nodejs/issues/195

The 3.0.0 release seems to have introduced a bug that wasn't there in 2.5.6.

Scenario

Using the promise API

  • Create a connection pool
  • Get a connection
  • Perform some requests
  • Release connection
  • Shutdown the DB server
  • Error ER_CONNECTION_KILLED is sometimes caught in the error event of the connection, sometimes not
  • Error ER_SOCKET_UNEXPECTED_CLOSE is sometimes caught in the error event of the connection, sometimes not
  • One more ER_SOCKET_UNEXPECTED_CLOSE is raised but I'm unable to catch it, thus my node process crashes. It doesn't get caught by the error event handler that I added to the connection.


 Comments   
Comment by Diego Dupin [ 2022-07-01 ]

In 3.0, when releasing connection to pool not with connection.release() but connection.close(), connection wasn't given back to pool, but killed.
When killing connection, server send a ER_CONNECTION_KILLED error that can sometime be caught by connector before socket is closed, but that's not assured, then having just an ER_SOCKET_UNEXPECTED_CLOSE error.

Generated at Thu Feb 08 03:23:28 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.