[MXS-3447] Maxscale 2.5.9 no longer allows `readwritesplit` router for read-only services Created: 2021-03-17 Updated: 2021-11-24 Resolved: 2021-07-12 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | readwritesplit |
| Affects Version/s: | 2.5.9 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Allen Lee (Inactive) | Assignee: | markus makela |
| Resolution: | Cannot Reproduce | Votes: | 0 |
| Labels: | need_feedback | ||
| Environment: |
google cloud |
||
| Attachments: |
|
| Sprint: | MXS-SPRINT-130 |
| Description |
|
user reported that they cannot use `readwritesplit` router for read-only services after upgrading to 2.5.9. Before, maxscale was v2.5.6.
Attached config and log file. |
| Comments |
| Comment by markus makela [ 2021-03-17 ] |
|
The query classification for those queries seems correct: most of the failing queries are classified as reads which means that something else causes the target type to be set to TARGET_MASTER. One possible explanation might be that there's a stored procedure call but this wouldn't work with MaxScale 2.5.6 either. The remaining thing that could cause this to happen is if causal_reads=fast somehow causes the server selection to fail because some of the servers don't have the required GTID. The problem is that this should only be possible if the connection caused something to generate a transaction with a GTID that is then returned by the server in the @@last_gtid variable. Otherwise the code should ignore the current GTID value. |
| Comment by markus makela [ 2021-03-17 ] |
|
Does the connection always fail when they attempt to use the read-only service? If it does, knowing what they do would be valuable. |