[CONJ-309] possible NPE on aurora when failover occur during connection initialisation Created: 2016-06-08  Updated: 2016-06-13  Resolved: 2016-06-13

Status: Closed
Project: MariaDB Connector/J
Component/s: Failover
Affects Version/s: all
Fix Version/s: 1.5.0-RC, 1.4.6

Type: Task Priority: Minor
Reporter: Diego Dupin Assignee: Diego Dupin
Resolution: Fixed Votes: 0
Labels: None


 Description   

(reported by user)

The short version:
I initiated 2 subsequent failovers upon creating a connection with multiple instance endpoints. The currentProtocol variable is null and therefore causes a NPE in the searchByStartName method (AuroraListener: line 194), which was called in the loop method of AuroraProtocol (AuroraProtocol: line 158). Adding a breakpoint on line 194 of AuroraListener helps tracing back. I would like to know why the currentProtocol is added to the blacklist.

Here is the relevant stacktrace:
java.lang.NullPointerException
at org.mariadb.jdbc.internal.failover.impl.AuroraListener.searchByStartName(AuroraListener.java:194)
at org.mariadb.jdbc.internal.protocol.AuroraProtocol.loop(AuroraProtocol.java:158)
at org.mariadb.jdbc.internal.failover.impl.AuroraListener.reconnectFailedConnection(AuroraListener.java:147)
at org.mariadb.jdbc.internal.failover.impl.MastersSlavesListener.initializeConnection(MastersSlavesListener.java:158)
at org.mariadb.jdbc.internal.failover.FailoverProxy.<init>(FailoverProxy.java:93)
at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:455)
at org.mariadb.jdbc.Driver.connect(Driver.java:105)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)



 Comments   
Comment by Diego Dupin [ 2016-06-08 ]

The issue has been reproduced.
This NPE can occur during connection initialisation on Aurora.

During connection initialisation, there is underlying 2 connections : one to a master and another to a replica.
When first connection concern a replica, a query is executed to know current master.
If a connection to this replica is lost during this execution, a NullpointerExecution will occur.

correction : https://github.com/MariaDB/mariadb-connector-j/commit/411851ae8aa160dc53df2a125aedf0576be3323f.

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