[MXS-1825] test_wl4435_3 case from mysql_client_test.c lead to crash Created: 2018-04-25 Updated: 2018-04-29 Resolved: 2018-04-29 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | readwritesplit |
| Affects Version/s: | 2.2 |
| Fix Version/s: | 2.2.6 |
| Type: | Bug | Priority: | Major |
| Reporter: | xiangzhong | Assignee: | markus makela |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
linux + make debug |
||
| Description |
|
bt: #0 0x00007fb6a62cf6ab in raise () from /lib64/libpthread.so.0 this case have SERVER_PS_OUT_PARAMS for stmt_exec |
| Comments |
| Comment by markus makela [ 2018-04-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I was able to reproduce this only with MySQL 5.6 but this is due to the fact that the server appears to send a broken result to the client. The last EOF packet before the final OK packet is missing the more results exist flag. All MariaDB versions correctly return the flag and MaxScale works as expected. Here's the output of 5.6 with the relevant line highlighted:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by markus makela [ 2018-04-26 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Turns out that this is intended (and documented) behavior for MySQL. If the first EOF packet has the flag for PS output parameters, it needs to be interpreted as a more results exist flag in the second EOF packet. MariaDB just has the more results exist flag in the last packet. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||