[MXS-4419] Transaction state is not tracked correctly for pipelined queries Created: 2022-11-30 Updated: 2023-07-13 Resolved: 2023-06-18 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | Core |
| Affects Version/s: | 22.08.2 |
| Fix Version/s: | 23.08.0 |
| Type: | Bug | Priority: | Major |
| Reporter: | markus makela | Assignee: | markus makela |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Sprint: | MXS-SPRINT-184 |
| Description |
|
Executing the following queries in a pipelined manned without waiting for the results will work as expected but internally cause the transaction tracking to not work correctly.
The logs from MaxScale show the problem:
This happens because the transaction state is tracked on the client protocol level which doesn't wait for the response packets before advancing into the next transaction state. This needs to be changed so that the transaction state advances to the next state only when the response to it is received. Ultimately, the tracking must also be done on the component level in the routing chain as separate branches in it are logically at a different transaction state. This, however, is not as important as the routers mostly handle this problem. |