mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
BUG#42640 mysqld crashes when unsafe statements are executed (STRICT_TRANS_TABLESmode)
Mysql server crashes because unsafe statements warning is wrongly elevated to error, which is set the error status of Diagnostics_area of the thread in THD::binlog_query(). Yet the caller believes that binary logging shouldn't touch the status, so it will set the status also later by my_ok(), my_error() or my_message() seperately according to the execution result of the statement or transaction. But the status of Diagnostics_area of the thread is allowed to set only once. Fixed to clear the error wrongly set by binary logging, but keep the warning message. mysql-test/suite/binlog/r/binlog_stm_ps.result: Change unsafe warning to NOTE level mysql-test/suite/binlog/r/binlog_unsafe.result: Test case result for unsafe statements to ensure mysql sever don't crash mysql-test/suite/binlog/t/binlog_unsafe.test: Test case for unsafe statements to ensure mysql sever don't crash mysql-test/suite/rpl/r/rpl_skip_error.result: Change unsafe warning to NOTE level mysql-test/suite/rpl/r/rpl_stm_loadfile.result: Change unsafe warning to NOTE level mysql-test/suite/rpl/r/rpl_udf.result: Change unsafe warning to NOTE level sql/sql_class.cc: the error status of the thread is cleared When a warning is elevated to an error because of unsafe warning of binary log.
This commit is contained in:
@ -182,19 +182,19 @@ CREATE TABLE t1(sum INT, price FLOAT(24)) ENGINE=MyISAM;
|
||||
affected rows: 0
|
||||
INSERT INTO t1 VALUES(myfunc_int(100), myfunc_double(50.00));
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Note 1592 Statement is not safe to log in statement format.
|
||||
affected rows: 1
|
||||
INSERT INTO t1 VALUES(myfunc_int(10), myfunc_double(5.00));
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Note 1592 Statement is not safe to log in statement format.
|
||||
affected rows: 1
|
||||
INSERT INTO t1 VALUES(myfunc_int(200), myfunc_double(25.00));
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Note 1592 Statement is not safe to log in statement format.
|
||||
affected rows: 1
|
||||
INSERT INTO t1 VALUES(myfunc_int(1), myfunc_double(500.00));
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Note 1592 Statement is not safe to log in statement format.
|
||||
affected rows: 1
|
||||
SELECT * FROM t1 ORDER BY sum;
|
||||
sum price
|
||||
|
Reference in New Issue
Block a user