[MDEV-25510] Assertion `sel->select_lock == st_select_lex::select_lock_type::NONE' failed in Lex_select_lock::set_to Created: 2021-04-24  Updated: 2021-05-19  Resolved: 2021-05-10

Status: Closed
Project: MariaDB Server
Component/s: Parser
Affects Version/s: N/A
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Michael Widenius
Resolution: Fixed Votes: 0
Labels: None
Environment:

bb-10.6-monty



 Description   

--error ER_NO_SUCH_TABLE
(SELECT x FROM t WINDOW w1 AS () FOR UPDATE) LIMIT 1;

bb-10.6-monty 6c9cf818dc

mariadbd: /data/src/bb-10.6-monty-patch/sql/sql_lex.cc:9823: void Lex_select_lock::set_to(SELECT_LEX*): Assertion `sel->select_lock == st_select_lex::select_lock_type::NONE' failed.
210425  2:55:53 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f0a0b388f36 in __GI___assert_fail (assertion=0x564464dd49e0 "sel->select_lock == st_select_lex::select_lock_type::NONE", file=0x564464dc2300 "/data/src/bb-10.6-monty-patch/sql/sql_lex.cc", line=9823, function=0x564464dd4a40 "void Lex_select_lock::set_to(SELECT_LEX*)") at assert.c:101
#8  0x0000564462ce8cba in Lex_select_lock::set_to (this=0x62b000086bf8, sel=0x62b000085518) at /data/src/bb-10.6-monty-patch/sql/sql_lex.cc:9823
#9  0x0000564462ce8e42 in Lex_order_limit_lock::set_to (this=0x62b000086bf0, sel=0x62b000085518) at /data/src/bb-10.6-monty-patch/sql/sql_lex.cc:9843
#10 0x0000564462ceaf0c in LEX::add_tail_to_query_expression_body_ext_parens (this=0x62b000082530, unit=0x62b000086320, l=0x62b000086bf0) at /data/src/bb-10.6-monty-patch/sql/sql_lex.cc:10176
#11 0x00005644633f7db8 in MYSQLparse (thd=0x62b00007e288) at /data/src/bb-10.6-monty-patch/sql/sql_yacc_default.yy:8856
#12 0x0000564462d64459 in parse_sql (thd=0x62b00007e288, parser_state=0x7f0a01f429a0, creation_ctx=0x0, do_pfs_digest=true) at /data/src/bb-10.6-monty-patch/sql/sql_parse.cc:10369
#13 0x0000564462d55343 in mysql_parse (thd=0x62b00007e288, rawbuf=0x62b000085440 "(SELECT x FROM t WINDOW w1 AS () FOR UPDATE) LIMIT 1", length=52, parser_state=0x7f0a01f429a0) at /data/src/bb-10.6-monty-patch/sql/sql_parse.cc:7971
#14 0x0000564462d2b7fd in dispatch_command (command=COM_QUERY, thd=0x62b00007e288, packet=0x629000258289 "(SELECT x FROM t WINDOW w1 AS () FOR UPDATE) LIMIT 1", packet_length=52, blocking=true) at /data/src/bb-10.6-monty-patch/sql/sql_parse.cc:1897
#15 0x0000564462d2851e in do_command (thd=0x62b00007e288, blocking=true) at /data/src/bb-10.6-monty-patch/sql/sql_parse.cc:1406
#16 0x0000564463187d88 in do_handle_one_connection (connect=0x61100000afc8, put_in_cache=true) at /data/src/bb-10.6-monty-patch/sql/sql_connect.cc:1410
#17 0x00005644631876e5 in handle_one_connection (arg=0x61100000ae88) at /data/src/bb-10.6-monty-patch/sql/sql_connect.cc:1312
#18 0x0000564463e97ad1 in pfs_spawn_thread (arg=0x618000005508) at /data/src/bb-10.6-monty-patch/storage/perfschema/pfs.cc:2201
#19 0x00007f0a0b8a0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00007f0a0b474293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

The failure was introduced in bb-10.6-monty by this commit:

commit 7e79af7c3986bac1c6926de02f94ffd7b5e27979
Author: Monty
Date:   Fri Aug 28 17:11:55 2020 +0300
 
    Optimize size of lex structures



 Comments   
Comment by Michael Widenius [ 2021-05-10 ]

The assert in the code was wrong. It was not triggered by any old test cases, which is why it was not discovered before.

Comment by Michael Widenius [ 2021-05-10 ]

Fixed in the original commit that caused the issue

Generated at Thu Feb 08 09:38:15 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.