← Back to team overview

maria-discuss team mailing list archive

Aurora 'rds.amazonaws.com' string detection

 

Hi, I recently resolved an issue with an application using the MariaDB JDBC
driver being unable to connect to an Amazon Aurora MySQL-compatible
database (single instance, not cluster). This turned out to be caused by
using 'dblink.[examplehostname].com' for my Aurora connection string,
rather than the ...rds.amazonaws.com string checked for in UrlParser.java -

https://github.com/MariaDB/mariadb-connector-j/blob/386819936ffad08d0ac213413c7a15c7b9a18dad/src/main/java/org/mariadb/jdbc/UrlParser.java

I see the code comment indicating that there are problems with detecting
Aurora via other methods, as well as compatibility issues preventing the
ability to connect to Aurora without a special case, so to some extent I
can understand the decision to use hostname or haMode detection.

But I wanted to point out that this approach comes with downsides -
particularly when it is not documented anywhere that I can see.  We had to
review the code itself on Github in order to identify the solution, and
that's a problem.

While I don't expect my experience to be the same as most users, I can't be
the only one using an alternate hostname or an IP address to connect, or
the only one making the reasonable assumption that the driver is
hostname-agnostic.

The other consideration - which I am admittedly making somewhat naively -
is that the MySQL JDBC driver is able to connect to this Aurora instance
without any problems, regardless of hostname. From the perspective of an
end user who doesn't care too much about implementation details, I'm
probably going to prefer the option that doesn't exhibit unexpected
behavior.

In any case - despite the frustrating experience I had - I am grateful to
everyone who's contributed to the MariaDB project, and I hope my feedback
is helpful.

-Evan