Skip to content

Commit 8c1bf09

Browse files
KhaledR57svoj
authored andcommitted
MDEV-34621 Fix division by zero in mariadb-slap when iterations=0
mariadb-slap crashes with a floating point exception when run with -iterations=0 due to division by zero in generate_stats(). This occurs when calculating average timing by dividing by the number of iterations. To fix this, the solution checks if iterations == 0 before performing the division, and returns early from the function in such cases.
1 parent 2a92cf8 commit 8c1bf09

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

client/mysqlslap.c

+7-5
Original file line numberDiff line numberDiff line change
@@ -2237,6 +2237,13 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
22372237
stats *ptr;
22382238
unsigned int x;
22392239

2240+
if (eng && eng->string)
2241+
con->engine= eng->string;
2242+
2243+
/* Early return when iterations is 0 to avoid accessing uninitialized sptr */
2244+
if (iterations == 0)
2245+
return;
2246+
22402247
con->min_timing= sptr->timing;
22412248
con->max_timing= sptr->timing;
22422249
con->min_rows= sptr->rows;
@@ -2257,11 +2264,6 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
22572264
con->min_timing= ptr->timing;
22582265
}
22592266
con->avg_timing= con->avg_timing/iterations;
2260-
2261-
if (eng && eng->string)
2262-
con->engine= eng->string;
2263-
else
2264-
con->engine= NULL;
22652267
}
22662268

22672269
void

mysql-test/main/mysqlslap.result

+3
Original file line numberDiff line numberDiff line change
@@ -260,3 +260,6 @@ DROP TABLE t1;
260260
#
261261
# Bug MDEV-15789 (Upstream: #80329): MYSQLSLAP OPTIONS --AUTO-GENERATE-SQL-GUID-PRIMARY and --AUTO-GENERATE-SQL-SECONDARY-INDEXES DONT WORK
262262
#
263+
#
264+
# Bug MDEV-34621: Fix division by zero in mariadb-slap when iterations=0
265+
#

mysql-test/main/mysqlslap.test

+6
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,9 @@ DROP TABLE t1;
8888
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-guid-primary --create-schema=slap
8989

9090
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-secondary-indexes=1 --create-schema=slap
91+
92+
--echo #
93+
--echo # Bug MDEV-34621: Fix division by zero in mariadb-slap when iterations=0
94+
--echo #
95+
96+
--exec $MYSQL_SLAP -i0 --only-print

0 commit comments

Comments
 (0)