Details
-
Bug
-
Status: Confirmed (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.5, 10.6, 10.11, 11.1(EOL), 11.2(EOL), 11.4, 11.5(EOL), 11.6(EOL)
-
None
Description
probably affects other versions too.
Testcase:
10.11 7443ad1c8a8437a761e1a2d3ba53f7c0ba0dd3bb |
--disable_query_log
|
--disable_result_log
|
--source ../../t/test_init.inc
|
--enable_result_log
|
--enable_query_log
|
evalp CREATE SERVER srv FOREIGN DATA WRAPPER mysql |
OPTIONS (SOCKET "$MASTER_1_MYSOCK", DATABASE 'test',user 'root'); |
create table t2 (c int); |
create table t1 (c int) ENGINE=Spider |
COMMENT='WRAPPER "mysql", srv "srv",TABLE "t2"'; |
show table status like "t1"; |
shutdown;
|
Failure output:
2023-11-23 15:23:22 0 [Note] /home/ycp/source/mariadb-server/10.11/build/sql/mariadbd (initiated by: root[root] @ localhost []): Normal shutdown
|
mariadbd: /home/ycp/source/mariadb-server/10.11/src/sql/sql_error.cc:457: void Diagnostics_area::set_error_status(uint, const char*, const char*, const Sql_user_condition_identity&, const Sql_condition*): Assertion `! is_set() || m_can_overwrite_status' failed.
|
The failure happens when spider tries to close the connection
Trace:
Diagnostics_area::set_error_status > THD::raise_condition > my_message_sql > my_error > net_real_write > net_write_command > cli_advanced_command > server_mysql_close > spider_db_disconnect > spider_free_conn > spider_free_conn_from_trx > spider_rollback > spider_close_connection > THD::free_connection > unlink_thd
However, if we add a connection-creating statement like select * from t1; or insert into t1 values (1); before or after the show status statement, then the failure does not occur.
Attachments
Issue Links
- relates to
-
MDEV-34541 SIGSEGV in spider_db_conn::fin_loop_check, and ASAN: heap-use-after-free in spider_db_mbase::fin_loop_check on SHOW TABLE STATUS
- Closed
-
MDEV-34708 Assertions `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' and Assertion `! is_set() || m_can_overwrite_status' failed upon DROP PROCEDURE after Spider Inf loop detection
- Open
- split to
-
MDEV-34826 Assertion `! is_set() || m_can_overwrite_status' failed in Diagnostics_area::set_error_status (LOCK TABLE version)
- Confirmed