[MXS-3214] LOAD DATA LOCAL INFILE results in erroneous "unknown prepared statement ID" Created: 2020-09-29 Updated: 2020-11-30 Resolved: 2020-11-30 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | readwritesplit |
| Affects Version/s: | 2.4.12 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Assen Totin (Inactive) | Assignee: | markus makela |
| Resolution: | Cannot Reproduce | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Sprint: | MXS-SPRINT-120 |
| Description |
|
This is an old bug, observed at least since 2.2 - see 0. The client (Matomo web analytics software) is written in PHP using their standard classes and runs in PHP-7.2 Connections are made ad-hoc (no pool is used of any kind). The particular job is run via cron and executes several statements in a single session (no parallel connections are used). MaxScale is configured with read-write split.
This is a shared system with many third-party applications, so "use_sql_variables_in=master" was needed at some point. The actual LOAD statement is:
MaxScale error log file entries:
Unfortunately, I cannot get a copy of the actual file as Matomo deletes it immediately after the error, but the tcpdump and the table name both suggest there are some BLOB values there. The dump is available if interesting to you. The same client job runs against the primary node without a problem. How can we make MaxScale just pass the uploaded file to the primary node and not try to parse it, deriving a non-existent prepared statement ID? |
| Comments |
| Comment by markus makela [ 2020-09-30 ] |
|
Please upload the tcpdump, we should be able to extract the data from that. If possible please also add the CREATE TABLE statement for the table in question. |
| Comment by markus makela [ 2020-10-01 ] |
|
We actually found a bug that might explain this: |
| Comment by markus makela [ 2020-11-30 ] |
|
Finally managed to look at the TCP dump and it does seem like MaxScale wrongly interprets the LOAD DATA LOCAL INFILE payload as normal traffic. This suggests that there was something wrong with the LOAD DATA LOCAL INFILE processing but given that it currently works, I think I'll close this until we get a reproducible test case with a newer release. |