[CONJ-484] Aurora failover => ArrayIndexOutOfBoundsException / AccessDenied Created: 2017-05-31 Updated: 2019-03-13 Resolved: 2019-03-13 |
|
| Status: | Closed |
| Project: | MariaDB Connector/J |
| Component/s: | aurora |
| Affects Version/s: | 1.5.9 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Critical |
| Reporter: | Xing Du | Assignee: | Diego Dupin |
| Resolution: | Incomplete | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Aurora |
||
| Description |
|
Hi all, I'm running Aurora failover testing with the help of MariaDB connector recently and discovered this weird issue. Preparation:
Test1:
Test2:
Exception:
Note:
I've tested with other slightly older versions as well and have seen the same result. Please don't hesitate to reach out to me if you need more information. I'm subscribed to this thread and should be updated if you leave a comment. Update
Note: |
| Comments |
| Comment by Xing Du [ 2017-06-05 ] | ||||||||||||||||
|
I did some debugging with by importing the source code of version 1.5.9 and adding debug statement. it seems to me that the problem can be somewhere in ReadPacketFetcher.getReusableBuffer() in FailoverProxy.executeInvocation I'm getting a invocation target exception, which is caused by:
And in ComStmtPrepare.read the exception is caused by invalid first byte from the buffer.
I was wondering if you can spend some time digging into the recycling logic of buffers and see if there is a potential issue, given that you may not be able to reproduce the exception that I'm seeing. Thanks in advance! -X | ||||||||||||||||
| Comment by Diego Dupin [ 2017-06-05 ] | ||||||||||||||||
|
Hi xdu This is due to the same issue than for Those option will now be set to false when driver discover that server is aurora to avoid thoses issues. Problem is send to amazon, so we can discuss correction. | ||||||||||||||||
| Comment by Diego Dupin [ 2017-06-05 ] | ||||||||||||||||
|
After a second thought, that need some testing, to my understanding, the error "ArrayIndexOutOfBoundsException: -10" must not normally occur. Error would normally then be similar to :
Having an "ArrayIndexOutOfBoundsException: -10" error mean that exchange with server has interrupted without the killing of the socket ?! Aurora must have added some proxy of some sort. I'm checking that now, and if so, exchange interruption without socket failure must have a better implementation to have a proper error. | ||||||||||||||||
| Comment by Diego Dupin [ 2017-06-05 ] | ||||||||||||||||
|
After testing, i didn't reproduced any error of this kind. | ||||||||||||||||
| Comment by Xing Du [ 2017-06-05 ] | ||||||||||||||||
|
Hi Diego, thanks for getting back to me! I really appreciated it. > Do you reproduce the issue easily ? if so, can you disable "useBatchMultiSend" an retry ? Did you get a chance to review the logic in recycling buffers? (getReusableBuffer) | ||||||||||||||||
| Comment by Xing Du [ 2017-06-06 ] | ||||||||||||||||
|
From tcpdump I see mariadb driver is fetching the instances behind the aurora cluster end point. (stored in a table in aurora) | ||||||||||||||||
| Comment by Diego Dupin [ 2017-06-06 ] | ||||||||||||||||
|
I cannot point to a specific place, the method "executeQuery" in the error log is one of the most used method. | ||||||||||||||||
| Comment by Xing Du [ 2017-06-06 ] | ||||||||||||||||
|
I agree with you. what format of tcpdump result are you most comfortable with? if you have a preferred group of tcpdump args, please let me know. | ||||||||||||||||
| Comment by Diego Dupin [ 2017-06-06 ] | ||||||||||||||||
|
any will do with the -X option (packet content with hexa and ASCII) if i remember that right | ||||||||||||||||
| Comment by Xing Du [ 2017-06-19 ] | ||||||||||||||||
|
sry for the late reply. I was out of office and did not get a chance to do this. | ||||||||||||||||
| Comment by Diego Dupin [ 2019-03-13 ] | ||||||||||||||||
|
closing since no news and not reproduced |