[MXS-4898] MaxScale sends wrong character set (session tracking) Created: 2023-12-14 Updated: 2024-01-24 Resolved: 2024-01-02 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | Core |
| Affects Version/s: | 23.08.3 |
| Fix Version/s: | 23.08.5 |
| Type: | Bug | Priority: | Major |
| Reporter: | Georg Richter | Assignee: | markus makela |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Sprint: | MXS-SPRINT-198, MXS-SPRINT-199 | ||||||||
| Description |
|
If client sends a character set during connection handshake, MaxScale sends a different character set in connection handshake ok packet. Code:
Output:
|
| Comments |
| Comment by markus makela [ 2023-12-14 ] |
|
The values being sent should either be removed or changed to character_set_server and collation_server. Changing them to the server values isn't as useful since client's wouldn't use them and correctly implementing the client character set and collation values is not trivial. |
| Comment by markus makela [ 2023-12-19 ] |
|
An alternative approach is to just replace the values in character_set_client, character_set_connection, character_set_results and collation_connection with the character set and collation names that the client is requesting. This would require reading information_schema.COLLATIONS and then storing that result. The only problem with this approach is that the collations for the given character set can be overridden with character_set_collations which may make MaxScale behave differently than a direct MariaDB connection would IF we assume that the server has implemented MDEV-31609. |