Details
-
Bug
-
Status: Confirmed (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.3.3, 10.3(EOL), 10.4(EOL)
-
None
-
docker image, utf8 collation, prepared statement with > 999 binary parameters.
Description
Since MariaDB 10.3.3 executing prepared statement with more than 999 parameters (binary blobs) return empty data set and no errors if utf8 collation is used and binary blobs contain non ASCII characters (symbols with codes of 128 or higher).
Same query with 999 parameters works fine, having 1000 parameters returns no data.
Same query with ASCII data works fine, having at least one byte >= 128 returns no data.
Same query on connection with collation latin1 works fine, using utf8 returns no data.
Go proof of concept app
We have stumbled on this bug after upgrade to MariaDB 10.3 on our service written in go. Simple go application to reproduce the problem is attached to the issue. Application will spin MariaDB server docker container and execute same query with 999 and 1000 parameters to show the issue. It will try multiple MariaDB versions. Same issue is not present in latest MySQL servers or MariaDB < 10.3.3.
C proof of concept app
Digging deeper into the issue I was able to reproduce it in C code. Demo code attached to the issue (builds with clang main.c -o main `mysql_config --cflags` `mysql_config --libs`).
C app will not spawn any docker containers and expect MariaDB running on localhost:3306.