[CONJ-1033] v2.7.5 breaks backwards compatibility when used against Aurora MySQL Created: 2022-12-13 Updated: 2023-02-01 |
|
| Status: | Open |
| Project: | MariaDB Connector/J |
| Component/s: | None |
| Affects Version/s: | 2.7.5, 2.7.6, 2.7.7 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Julian Bui | Assignee: | Diego Dupin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
mac os |
||
| Description |
|
With 2.7.5 and onwards, mariadb driver usage against aurora mysql instances will not work. I realize there are other bugs like this filed against lower versions, but I can confirm the problem does not exist in 2.7.2 and 2.7.4 for instance. I realize that I can add `?usePipelineAuth=false` and it will workaround the issue but the point is that this is a backwards compatibility breaking change. I am wondering if you have considered reverting the backwards compatibility breaking change for the v2.7.X line. Keeping that change makes it so anyone wanting security fixes will have their workflows broken. Probably related to Repro: 1) write an application with a valid aurora mysql instance credentials set for userName and password and provide a "jdbc:mariadb://<aurorahost>:3306/database" for jdbcUrl try (Connection conn = DriverManager.getConnection(jdbcUrl, userName, password)) { // anything }2) Provide maria jdbc driver v2.7.5 Expected: Successful connection 4) Replace the v2.7.5 driver with 2.7.4 and get a successful connection |
| Comments |
| Comment by Vladislav Vaintroub [ 2022-12-13 ] | |
|
julianbui Thing is , Aurora has had that bug for ages, and it is their responsibility to fix it. A server .does not discard client input, but Aurora does it. Did you try to report this for Aurora, so that the driver developers do not all have to workaround their broken idea of how client and server can communicate? | |
| Comment by Julian Bui [ 2022-12-13 ] | |
|
I understand that Aurora has had this issue for a long time. However, in my opinion, the maria jdbc driver maintainers should not be making large backwards compatibility breaking changes in a patch version. That type of change is much more acceptable for a major version (e.g., upgrade from maria jdbc v2 to v3). As far as I'm aware, you did not need to make this change when you did. I would also like to note that the aurora notice on https://mariadb.com/kb/en/about-mariadb-connector-j/ seems to convey that v3 would not support aurora but v2 does and would for 5 years, if I'm reading that correctly.
| |
| Comment by Diego Dupin [ 2022-12-15 ] | |
|
At some point, Amazon did help for using aurora. Now we don't have even access to any test aurora instances, and community has never help with any aurora issues. So any changes relative to aurora cannot be verified ... Now comes issue Only solution then is to use "?usePipelineAuth=false&useBatchMultiSend=false&disablePipeline=false", because there doesn't seem to be any way we can rely specific aurora url. | |
| Comment by Julian Bui [ 2022-12-16 ] | |
|
Re: Can you help me understand | |
| Comment by Diego Dupin [ 2022-12-19 ] | |
|
Only aurora has the faulty proxy, other doesn't have any proxy, so doesn't have the issue.
| |
| Comment by Julian Bui [ 2023-02-01 ] | |
|
Diego, I'd like to appeal to you one more time. We have so many customers recently hitting locking issues (https://jira.mariadb.org/browse/CONJ-863 and https://jira.mariadb.org/browse/CONJ-983) and we canot fix them unless we go to 2.7.6 which breaks backward compatibility with Aurora MySQL instances. Maria jdbc documentation states that you would be supporting aurora mysql instances in 2.X.
Is there any way to fix the backwards incompatibility introduced in 2.7.5? |