New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IndexOutOfBoundsException when used RDS, but single mysql server OK #469
Comments
|
Thank you very much for your advice. Here is the original error message (around ha_health_check): When I tried other mysql replicator tool such as canal, the same error 'Couldn't find mysql.ha_health_check table', and then the same IndexOutOfBoundsException happened. So I thought maybe the RDS binlog had something different and special. The IndexOutOfBoundsException showed the test table had two columns but the usedColumns had three. Finally, I altered the test table by adding primary key,and at the same time,the mysql table had already been added to the blacklist_db as mentioned previously.Then everything was OK! |
i think you might be right in (1) -- it really seems like RDS is putting rows in its binlogs around the what is the output of this command?
|
mysql-bin.000113 has been expired. I re-initialized maxwell and started it. Then error: show binlog events in 'mysql-bin.000118' from 36379 limit 10; Output: |
hmm, that doesn't have the ticket update. maybe increase the |
Yes! I increased the LIMIT. ha_health_check finally shows up, and many events around ha_health_check. Here it is a part of binlog: mysql-bin.000121 | 1585489 | Query | 2428115145 | 1585557 | BEGIN | |
just looks like a normal table as far as I can tell. What about the output of:
Maybe there's something weird with the join, or something..... |
Here it is: |
now we're getting somewhere; the table isn't there. What about:
|
Sorry for being late to reply. I think RDS has the table to keep master\slave communication,but why the table isn't there? I'll send the issue to RDS provider. |
I guess it doesn't appear in INFORMATION_SCHEMA tables. addresses #469.
sounds good, does sound like an RDS problem to me. For now, have this pr: #476 |
RDS provider's answer: ha_health_check table is RDS system table which is not visiable to other users. So it's RDS privilege problem. Thank you again. |
I guess it doesn't appear in INFORMATION_SCHEMA tables. addresses #469.
1.5.1 includes the fix |
thank you so much! |
you're welcome, thanks for the assist in finding out what was going on. |
When I used RDS as mysql server,maxwell v1.4.2, I encountered the error: Couldn't find table ha_health_check. Then I took some steps as follows:
1. Added mysql to blacklist_dbs, previously, blacklist_dbs had nothing.
2. Initialized the maxwell schema tables by deleting all data in those tables.
3. Started maxwell, log was like:
10:29:28,702 INFO Maxwell - Maxwell v1.4.2 is booting (StdoutProducer), starting at BinlogPosition[mysql-bin.000102:28008]
10:29:28,825 INFO OpenReplicator - starting replication at mysql-bin.000102:28008
10:29:29,070 INFO AbstractSchemaStore - Maxwell is capturing initial schema
4.Executed an insert clause in another test table with just two columns. Then maxwell shutdown. Error was:
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at com.zendesk.maxwell.schema.ColumnWithDefinitionList$ColumnWithDefinitionIterator.next(ColumnWithDefinitionList.java:67)
at com.zendesk.maxwell.schema.ColumnWithDefinitionList$ColumnWithDefinitionIterator.next(ColumnWithDefinitionList.java:1)
at com.zendesk.maxwell.replication.AbstractRowsEvent.jsonMaps(AbstractRowsEvent.java:206)
at com.zendesk.maxwell.replication.MaxwellReplicator.getTransactionRows(MaxwellReplicator.java:281)
at com.zendesk.maxwell.replication.MaxwellReplicator.getRow(MaxwellReplicator.java:428)
at com.zendesk.maxwell.replication.MaxwellReplicator.work(MaxwellReplicator.java:159)
at com.zendesk.maxwell.util.RunLoopProcess.runLoop(RunLoopProcess.java:35)
at com.zendesk.maxwell.Maxwell.start(Maxwell.java:160)
at com.zendesk.maxwell.Maxwell.main(Maxwell.java:181)
5. I added some logs in the class ColumnWithDefinitionList, I found that the columnDefList length was not equivalent to the usedColumns length, it seemed that the columnDefList had two elements, that was right, but the usedColumns had more, so the IndexOutOfBoundsException happened.
All the issues above have not happened when I used single mysql server.
Any reply would be greatly appreciated.
The text was updated successfully, but these errors were encountered: