Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-25087

Stack overflow upon exceeding FOREIGN KEY recursion depth

Details

    Description

      The subject was already visited in the scope of MDEV-18272, particularly in Marko's comment mentioning a high recursion stack. It appears to be still the case, and it can cause troubles on certain builds, at least with a lowered value of thread_stack.

      I don't know if the problem is scalable – that is, whether there can be builds and/or use cases when the failure would happen even with a default thread_stack. For now I set it to Minor due to the artificial configuration. However, even if it's not scalable and not worth fixing logically, maybe it makes sense to reconcile minimum thread_stack and maximum recursion depth values so that they didn't conflict with each other.

      For me it currently happens on ASAN builds (debug and optimized), with thread_stack between 131072 and ~225000, depending on the build. The default nowadays is 299008.

      On some machines the failure is a proper AddressSanitizer stack-overflow error, while on others it just crashes with an obscure SIGSEGV. Below are examples of both.

      Any test case from MDEV-18272 fails this way under the described conditions. Here is a more "natural" one:

      --source include/have_innodb.inc
      --source include/have_sequence.inc
       
      CREATE TABLE t1 (
        pk INT,
        a CHAR(1),
        b CHAR(1),
        PRIMARY KEY (pk),
        KEY `c27` (b),
        FOREIGN KEY (a) REFERENCES t1 (b) ON DELETE CASCADE
      ) ENGINE=InnoDB;
       
      INSERT INTO t1 SELECT seq, 'x', 'x' FROM seq_1_to_100;
      --error ER_GET_ERRMSG
      DELETE FROM t1;
       
      # Cleanup
      DROP TABLE t1;
      

      10.2-dc666780-rel-ASAN Ubuntu 18.04 gcc 7.5.0, --mysqld=--thread-stack=225000

      ==6489==ERROR: AddressSanitizer: stack-overflow on address 0x7f1167b3a868 (pc 0x7f117fab3509 bp 0x7f1167b3b0d0 sp 0x7f1167b3a840 T27)
          #0 0x7f117fab3508  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x79508)
          #1 0x55b68cee7505 in copy_events_waits /home/mdbe/enterprise-tests/src/10.2/storage/perfschema/pfs_events_waits.cc:89
          #2 0x55b68cee7505 in insert_events_waits_history(PFS_thread*, PFS_events_waits*) /home/mdbe/enterprise-tests/src/10.2/storage/perfschema/pfs_events_waits.cc:112
          #3 0x55b68cf55e8a in end_rwlock_rdwait_v1 /home/mdbe/enterprise-tests/src/10.2/storage/perfschema/pfs.cc:3611
          #4 0x55b68c929675 in pfs_rw_lock_s_lock_func /home/mdbe/enterprise-tests/src/10.2/storage/innobase/include/sync0rw.ic:634
          #5 0x55b68c959b60 in mtr_t::s_lock(rw_lock_t*, char const*, unsigned int) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/include/mtr0mtr.ic:237
          #6 0x55b68c944dc0 in btr_cur_search_to_nth_level_func(dict_index_t*, unsigned long, dtuple_t const*, page_cur_mode_t, unsigned long, btr_cur_t*, unsigned long, char const*, unsigned int, mtr_t*, unsigned long) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/btr/btr0cur.cc:1178
          #7 0x55b68c6ab04c in btr_pcur_open_low /home/mdbe/enterprise-tests/src/10.2/storage/innobase/include/btr0pcur.ic:457
          #8 0x55b68c6ab04c in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1633
          #9 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #10 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #11 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #12 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #13 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #14 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #15 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #16 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #17 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #18 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #19 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #20 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #21 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #22 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #23 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #24 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #25 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #26 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #27 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #28 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #29 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #30 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #31 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #32 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #33 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #34 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #35 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #36 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #37 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #38 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #39 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #40 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #41 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #42 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #43 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #44 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #45 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #46 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #47 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #48 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #49 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #50 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #51 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #52 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #53 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #54 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #55 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #56 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #57 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #58 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #59 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #60 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #61 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #62 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #63 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #64 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #65 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #66 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #67 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #68 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #69 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #70 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #71 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #72 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #73 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #74 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #75 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #76 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #77 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #78 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #79 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #80 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #81 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #82 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #83 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #84 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #85 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #86 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #87 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #88 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #89 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #90 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #91 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #92 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #93 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #94 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #95 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #96 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #97 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #98 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #99 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #100 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #101 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #102 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #103 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #104 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #105 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #106 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #107 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #108 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #109 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #110 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #111 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #112 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #113 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #114 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #115 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #116 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #117 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #118 0x55b68c6e5607 in row_update_cascade_for_mysql(que_thr_t*, upd_node_t*, dict_table_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:2106
          #119 0x55b68c6ae368 in row_ins_foreign_check_on_constraint /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1360
          #120 0x55b68c6ae368 in row_ins_check_foreign_constraint(unsigned long, dict_foreign_t*, dict_table_t*, dtuple_t*, que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0ins.cc:1749
          #121 0x55b68c7833f0 in row_upd_check_references_constraints /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:325
          #122 0x55b68c798a98 in row_upd_sec_index_entry /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2506
          #123 0x55b68c79bb7e in row_upd_sec_step /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:2582
          #124 0x55b68c79bb7e in row_upd /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3344
          #125 0x55b68c79bb7e in row_upd_step(que_thr_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0upd.cc:3461
          #126 0x55b68c6eabd5 in row_update_for_mysql(row_prebuilt_t*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/row/row0mysql.cc:1822
          #127 0x55b68c47d1d3 in ha_innobase::delete_row(unsigned char const*) /home/mdbe/enterprise-tests/src/10.2/storage/innobase/handler/ha_innodb.cc:9108
          #128 0x55b68bf8997a in handler::ha_delete_row(unsigned char const*) /home/mdbe/enterprise-tests/src/10.2/sql/handler.cc:6178
          #129 0x55b68c34c2de in mysql_delete(THD*, TABLE_LIST*, Item*, SQL_I_List<st_order>*, unsigned long long, unsigned long long, select_result*) /home/mdbe/enterprise-tests/src/10.2/sql/sql_delete.cc:583
          #130 0x55b68ba232dd in mysql_execute_command(THD*) /home/mdbe/enterprise-tests/src/10.2/sql/sql_parse.cc:4424
          #131 0x55b68ba39254 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /home/mdbe/enterprise-tests/src/10.2/sql/sql_parse.cc:7790
          #132 0x55b68ba3fc84 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /home/mdbe/enterprise-tests/src/10.2/sql/sql_parse.cc:1827
          #133 0x55b68ba42e07 in do_command(THD*) /home/mdbe/enterprise-tests/src/10.2/sql/sql_parse.cc:1381
          #134 0x55b68bd0ccae in do_handle_one_connection(CONNECT*) /home/mdbe/enterprise-tests/src/10.2/sql/sql_connect.cc:1336
          #135 0x55b68bd0d4ca in handle_one_connection /home/mdbe/enterprise-tests/src/10.2/sql/sql_connect.cc:1241
          #136 0x55b68cf537bb in pfs_spawn_thread /home/mdbe/enterprise-tests/src/10.2/storage/perfschema/pfs.cc:1869
          #137 0x7f117e5fd6da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
          #138 0x7f117d9e771e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x12171e)
       
      SUMMARY: AddressSanitizer: stack-overflow (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x79508) 
      Thread T27 created by T0 here:
          #0 0x7f117fa71d2f in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37d2f)
          #1 0x55b68cf5d303 in spawn_thread_v1 /home/mdbe/enterprise-tests/src/10.2/storage/perfschema/pfs.cc:1919
          #2 0x55b68b82b1e2 in inline_mysql_thread_create /home/mdbe/enterprise-tests/src/10.2/include/mysql/psi/mysql_thread.h:1246
          #3 0x55b68b82b1e2 in create_thread_to_handle_connection(CONNECT*) /home/mdbe/enterprise-tests/src/10.2/sql/mysqld.cc:6575
          #4 0x55b68b83bdd6 in create_new_thread /home/mdbe/enterprise-tests/src/10.2/sql/mysqld.cc:6643
          #5 0x55b68b83bdd6 in handle_connections_sockets() /home/mdbe/enterprise-tests/src/10.2/sql/mysqld.cc:6901
          #6 0x55b68b83dddc in mysqld_main(int, char**) /home/mdbe/enterprise-tests/src/10.2/sql/mysqld.cc:6192
          #7 0x7f117d8e7bf6 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21bf6)
       
      ==6489==ABORTING
      

      10.2-545cba13 debug ASAN Ubuntu 20.04 gcc 9.3.0 --mysqld=--thread-stack=150000

      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  0x00007fd46f08d606 in __asan_region_is_poisoned () from /lib/x86_64-linux-gnu/libasan.so.5
      [Current thread is 1 (Thread 0x7fd457f8cf00 (LWP 4010144))]
      #0  0x00007fd46f08d606 in __asan_region_is_poisoned () from /lib/x86_64-linux-gnu/libasan.so.5
      #1  0x00007fd46f015432 in ?? () from /lib/x86_64-linux-gnu/libasan.so.5
      #2  0x000055fa974797e8 in copy_events_waits (dest=0x7fd469608b40, source=0x7fd469661138) at /data/src/10.2/storage/perfschema/pfs_events_waits.cc:89
      #3  0x000055fa974798e7 in insert_events_waits_history (thread=0x7fd469660ec0, wait=0x7fd469661138) at /data/src/10.2/storage/perfschema/pfs_events_waits.cc:112
      #4  0x000055fa974e22fd in end_mutex_wait_v1 (locker=0x7fd457f689f0, rc=0) at /data/src/10.2/storage/perfschema/pfs.cc:3530
      #5  0x000055fa96aeec5d in PolicyMutex<OSTrackMutex<GenericPolicy> >::pfs_end (this=0x55fa98b964a0 <rw_lock_debug_mutex>, locker=0x7fd457f689f0, ret=0) at /data/src/10.2/storage/innobase/include/ib0mutex.h:783
      #6  0x000055fa96aecdf2 in PolicyMutex<OSTrackMutex<GenericPolicy> >::enter (this=0x55fa98b964a0 <rw_lock_debug_mutex>, n_spins=30, n_delay=4, name=0x55fa97c35fe0 "/data/src/10.2/storage/innobase/sync/sync0debug.cc", line=1252) at /data/src/10.2/storage/innobase/include/ib0mutex.h:641
      #7  0x000055fa96d12f6c in rw_lock_debug_mutex_enter () at /data/src/10.2/storage/innobase/sync/sync0debug.cc:1252
      #8  0x000055fa96d06430 in rw_lock_own_flagged (lock=0x61e000002a00, flags=3) at /data/src/10.2/storage/innobase/sync/sync0rw.cc:1051
      #9  0x000055fa96e6384d in rw_lock_s_lock_func (lock=0x61e000002a00, pass=0, file_name=0x55fa97cd9720 "/data/src/10.2/storage/innobase/buf/buf0buf.cc", line=4213) at /data/src/10.2/storage/innobase/include/sync0rw.ic:284
      #10 0x000055fa96e650fa in pfs_rw_lock_s_lock_func (lock=0x61e000002a00, pass=0, file_name=0x55fa97cd9720 "/data/src/10.2/storage/innobase/buf/buf0buf.cc", line=4213) at /data/src/10.2/storage/innobase/include/sync0rw.ic:631
      #11 0x000055fa96e83bd8 in buf_page_get_low (page_id=..., page_size=..., rw_latch=1, guess=0x7fd465a58ea0, mode=10, file=0x55fa97b8ffe0 "/data/src/10.2/storage/innobase/row/row0ins.cc", line=1633, mtr=0x7fd457f6ab70, err=0x7fd457f692c0) at /data/src/10.2/storage/innobase/buf/buf0buf.cc:4213
      #12 0x000055fa96e8677b in buf_page_get_gen (page_id=..., page_size=..., rw_latch=1, guess=0x7fd465a58ea0, mode=10, file=0x55fa97b8ffe0 "/data/src/10.2/storage/innobase/row/row0ins.cc", line=1633, mtr=0x7fd457f6ab70, err=0x7fd457f692c0) at /data/src/10.2/storage/innobase/buf/buf0buf.cc:4835
      #13 0x000055fa96e12ec2 in btr_cur_search_to_nth_level_func (index=0x618000035508, level=0, tuple=0x61600004e420, mode=PAGE_CUR_GE, latch_mode=1, cursor=0x7fd457f6a6d0, has_search_latch=0, file=0x55fa97b8ffe0 "/data/src/10.2/storage/innobase/row/row0ins.cc", line=1633, mtr=0x7fd457f6ab70, autoinc=0) at /data/src/10.2/storage/innobase/btr/btr0cur.cc:1276
      #14 0x000055fa96ba7244 in btr_pcur_open_low (index=0x618000035508, level=0, tuple=0x61600004e420, mode=PAGE_CUR_GE, latch_mode=1, cursor=0x7fd457f6a6d0, file=0x55fa97b8ffe0 "/data/src/10.2/storage/innobase/row/row0ins.cc", line=1633, autoinc=0, mtr=0x7fd457f6ab70) at /data/src/10.2/storage/innobase/include/btr0pcur.ic:457
      #15 0x000055fa96bb00bb in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004e420, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1633
      #16 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x61600004de08, pcur=0x7fd457f6b400, table=0x6190000d9e08, index=0x618000034908, offsets=0x6190001a0f78, thr=0x6250000f5188, mtr=0x7fd457f6bc40) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #17 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x61600004de08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #18 0x000055fa96cb78c8 in row_upd_sec_step (node=0x61600004de08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #19 0x000055fa96cbbe5f in row_upd (node=0x61600004de08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #20 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #21 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x61600004de08, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #22 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f6ca80, entry=0x61600004db20, mtr=0x7fd457f6cf20) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #23 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004db20, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #24 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x61600004d508, pcur=0x7fd457f6d7b0, table=0x6190000d9e08, index=0x618000034908, offsets=0x6190001a0a78, thr=0x6250000f5188, mtr=0x7fd457f6dff0) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #25 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x61600004d508, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #26 0x000055fa96cb78c8 in row_upd_sec_step (node=0x61600004d508, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #27 0x000055fa96cbbe5f in row_upd (node=0x61600004d508, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #28 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #29 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x61600004d508, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #30 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f6ee30, entry=0x61600004d220, mtr=0x7fd457f6f2d0) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #31 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004d220, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #32 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x61600004cc08, pcur=0x7fd457f6fb60, table=0x6190000d9e08, index=0x618000034908, offsets=0x6190001a0578, thr=0x6250000f5188, mtr=0x7fd457f703a0) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #33 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x61600004cc08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #34 0x000055fa96cb78c8 in row_upd_sec_step (node=0x61600004cc08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #35 0x000055fa96cbbe5f in row_upd (node=0x61600004cc08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #36 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #37 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x61600004cc08, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #38 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f711e0, entry=0x61600004c920, mtr=0x7fd457f71680) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #39 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004c920, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #40 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x61600004c308, pcur=0x7fd457f71f10, table=0x6190000d9e08, index=0x618000034908, offsets=0x6190001a0078, thr=0x6250000f5188, mtr=0x7fd457f72750) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #41 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x61600004c308, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #42 0x000055fa96cb78c8 in row_upd_sec_step (node=0x61600004c308, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #43 0x000055fa96cbbe5f in row_upd (node=0x61600004c308, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #44 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #45 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x61600004c308, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #46 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f73590, entry=0x61600004c020, mtr=0x7fd457f73a30) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #47 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004c020, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #48 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x61600004ba08, pcur=0x7fd457f742c0, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019fb78, thr=0x6250000f5188, mtr=0x7fd457f74b00) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #49 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x61600004ba08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #50 0x000055fa96cb78c8 in row_upd_sec_step (node=0x61600004ba08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #51 0x000055fa96cbbe5f in row_upd (node=0x61600004ba08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #52 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #53 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x61600004ba08, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #54 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f75940, entry=0x61600004b720, mtr=0x7fd457f75de0) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #55 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004b720, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #56 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x61600004b108, pcur=0x7fd457f76670, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019f678, thr=0x6250000f5188, mtr=0x7fd457f76eb0) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #57 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x61600004b108, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #58 0x000055fa96cb78c8 in row_upd_sec_step (node=0x61600004b108, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #59 0x000055fa96cbbe5f in row_upd (node=0x61600004b108, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #60 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #61 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x61600004b108, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #62 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f77cf0, entry=0x61600004ae20, mtr=0x7fd457f78190) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #63 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004ae20, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #64 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x61600004a808, pcur=0x7fd457f78a20, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019f178, thr=0x6250000f5188, mtr=0x7fd457f79260) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #65 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x61600004a808, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #66 0x000055fa96cb78c8 in row_upd_sec_step (node=0x61600004a808, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #67 0x000055fa96cbbe5f in row_upd (node=0x61600004a808, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #68 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #69 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x61600004a808, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #70 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f7a0a0, entry=0x61600004a520, mtr=0x7fd457f7a540) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #71 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x61600004a520, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #72 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x616000049f08, pcur=0x7fd457f7add0, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019ec78, thr=0x6250000f5188, mtr=0x7fd457f7b610) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #73 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x616000049f08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #74 0x000055fa96cb78c8 in row_upd_sec_step (node=0x616000049f08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #75 0x000055fa96cbbe5f in row_upd (node=0x616000049f08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #76 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #77 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x616000049f08, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #78 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f7c450, entry=0x616000049c20, mtr=0x7fd457f7c8f0) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #79 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x616000049c20, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #80 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x616000049608, pcur=0x7fd457f7d180, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019e778, thr=0x6250000f5188, mtr=0x7fd457f7d9c0) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #81 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x616000049608, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #82 0x000055fa96cb78c8 in row_upd_sec_step (node=0x616000049608, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #83 0x000055fa96cbbe5f in row_upd (node=0x616000049608, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #84 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #85 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x616000049608, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #86 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f7e800, entry=0x616000049320, mtr=0x7fd457f7eca0) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #87 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x616000049320, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #88 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x616000048d08, pcur=0x7fd457f7f530, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019e278, thr=0x6250000f5188, mtr=0x7fd457f7fd70) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #89 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x616000048d08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #90 0x000055fa96cb78c8 in row_upd_sec_step (node=0x616000048d08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #91 0x000055fa96cbbe5f in row_upd (node=0x616000048d08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #92 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #93 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x616000048d08, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #94 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f80bb0, entry=0x616000048a20, mtr=0x7fd457f81050) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #95 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x616000048a20, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #96 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x616000048408, pcur=0x7fd457f818e0, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019dd78, thr=0x6250000f5188, mtr=0x7fd457f82120) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #97 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x616000048408, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #98 0x000055fa96cb78c8 in row_upd_sec_step (node=0x616000048408, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #99 0x000055fa96cbbe5f in row_upd (node=0x616000048408, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #100 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #101 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x616000048408, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #102 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f82f60, entry=0x616000048120, mtr=0x7fd457f83400) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #103 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x616000048120, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #104 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x616000047b08, pcur=0x7fd457f83c90, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019d878, thr=0x6250000f5188, mtr=0x7fd457f844d0) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #105 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x616000047b08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #106 0x000055fa96cb78c8 in row_upd_sec_step (node=0x616000047b08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #107 0x000055fa96cbbe5f in row_upd (node=0x616000047b08, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #108 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #109 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x616000047b08, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #110 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f85310, entry=0x616000047820, mtr=0x7fd457f857b0) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #111 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x616000047820, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #112 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x616000047208, pcur=0x7fd457f86040, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019d378, thr=0x6250000f5188, mtr=0x7fd457f86880) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #113 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x616000047208, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #114 0x000055fa96cb78c8 in row_upd_sec_step (node=0x616000047208, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #115 0x000055fa96cbbe5f in row_upd (node=0x616000047208, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #116 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #117 0x000055fa96bff42d in row_update_cascade_for_mysql (thr=0x6250000f5188, node=0x616000047208, table=0x6190000d9e08) at /data/src/10.2/storage/innobase/row/row0mysql.cc:2106
      #118 0x000055fa96baee63 in row_ins_foreign_check_on_constraint (thr=0x6250000f5188, foreign=0x616000045408, pcur=0x7fd457f876c0, entry=0x616000046f20, mtr=0x7fd457f87b60) at /data/src/10.2/storage/innobase/row/row0ins.cc:1360
      #119 0x000055fa96bb04e7 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000045408, table=0x6190000d9e08, entry=0x616000046f20, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0ins.cc:1749
      #120 0x000055fa96cad6e7 in row_upd_check_references_constraints (node=0x621000095908, pcur=0x7fd457f883f0, table=0x6190000d9e08, index=0x618000034908, offsets=0x61900019ce78, thr=0x6250000f5188, mtr=0x7fd457f88c30) at /data/src/10.2/storage/innobase/row/row0upd.cc:325
      #121 0x000055fa96cb709f in row_upd_sec_index_entry (node=0x621000095908, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2506
      #122 0x000055fa96cb78c8 in row_upd_sec_step (node=0x621000095908, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:2582
      #123 0x000055fa96cbbe5f in row_upd (node=0x621000095908, thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3344
      #124 0x000055fa96cbc8a7 in row_upd_step (thr=0x6250000f5188) at /data/src/10.2/storage/innobase/row/row0upd.cc:3461
      #125 0x000055fa96bfdb66 in row_update_for_mysql (prebuilt=0x621000094d88) at /data/src/10.2/storage/innobase/row/row0mysql.cc:1822
      #126 0x000055fa96939770 in ha_innobase::delete_row (this=0x61d0001f4b10, record=0x6190000ddf20 "\371\001") at /data/src/10.2/storage/innobase/handler/ha_innodb.cc:9062
      #127 0x000055fa964255f0 in handler::ha_delete_row (this=0x61d0001f4b10, buf=0x6190000ddf20 "\371\001") at /data/src/10.2/sql/handler.cc:6178
      #128 0x000055fa967fc61a in mysql_delete (thd=0x62a0000ba270, table_list=0x62b000000380, conds=0x0, order_list=0x62a0000be808, limit=18446744073709551615, options=0, result=0x0) at /data/src/10.2/sql/sql_delete.cc:583
      #129 0x000055fa95dc63e8 in mysql_execute_command (thd=0x62a0000ba270) at /data/src/10.2/sql/sql_parse.cc:4424
      #130 0x000055fa95ddd218 in mysql_parse (thd=0x62a0000ba270, rawbuf=0x62b000000290 "DELETE FROM t1", length=14, parser_state=0x7fd457f8b490, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:7790
      #131 0x000055fa95db630f in dispatch_command (command=COM_QUERY, thd=0x62a0000ba270, packet=0x629000136271 "DELETE FROM t1", packet_length=14, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:1827
      #132 0x000055fa95db30ce in do_command (thd=0x62a0000ba270) at /data/src/10.2/sql/sql_parse.cc:1381
      #133 0x000055fa9613b305 in do_handle_one_connection (connect=0x61100004aa70) at /data/src/10.2/sql/sql_connect.cc:1336
      #134 0x000055fa9613abc8 in handle_one_connection (arg=0x61100004aa70) at /data/src/10.2/sql/sql_connect.cc:1241
      #135 0x000055fa974d9438 in pfs_spawn_thread (arg=0x61600000e7f0) at /data/src/10.2/storage/perfschema/pfs.cc:1869
      #136 0x00007fd46eabc609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #137 0x00007fd46e698293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      10.6-03ff588d non-debug ASAN Ubuntu 20.04 gcc 9.3.0 --mysqld=--thread-stack=200000

      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  0x000055869772ed48 in mtr_t::commit (this=this@entry=0x7facde47d460) at /data/src/10.6/storage/innobase/mtr/mtr0mtr.cc:394
      394	{
      [Current thread is 1 (Thread 0x7facde4ad300 (LWP 4010745))]
      #0  0x000055869772ed48 in mtr_t::commit (this=this@entry=0x7facde47d460) at /data/src/10.6/storage/innobase/mtr/mtr0mtr.cc:394
      #1  0x000055869790d462 in trx_undo_report_row_operation (thr=thr@entry=0x6240000e0188, index=index@entry=0x616000077508, clust_entry=<optimized out>, update=update@entry=0x0, cmpl_info=cmpl_info@entry=0, rec=rec@entry=0x7face368c1dc <error: Cannot access memory at address 0x7face368c1dc>, offsets=<optimized out>, roll_ptr=<optimized out>) at /data/src/10.6/storage/innobase/trx/trx0rec.cc:2127
      #2  0x00005586979eea25 in btr_cur_del_mark_set_clust_rec (block=<optimized out>, rec=0x7face368c1dc <error: Cannot access memory at address 0x7face368c1dc>, index=index@entry=0x616000077508, offsets=offsets@entry=0x7facde47f1a0, thr=thr@entry=0x6240000e0188, entry=<optimized out>, mtr=<optimized out>) at /data/src/10.6/storage/innobase/btr/btr0cur.cc:5391
      #3  0x00005586978ab9c5 in row_upd_del_mark_clust_rec (mtr=0x7facde47f760, foreign=<optimized out>, referenced=0, thr=0x6240000e0188, offsets=0x7facde47f1a0, index=0x616000077508, node=0x616000083208) at /data/src/10.6/storage/innobase/row/row0upd.cc:2712
      #4  row_upd_clust_step (node=0x616000083208, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2889
      #5  0x00005586978b11b2 in row_upd (thr=0x6240000e0188, node=0x616000083208) at /data/src/10.6/storage/innobase/row/row0upd.cc:3021
      #6  row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #7  0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x616000083208, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #8  0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #9  row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x616000082f20, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #10 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x616000082908, pcur=pcur@entry=0x7facde481e40, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #11 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #12 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x616000082908) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #13 row_upd (thr=0x6240000e0188, node=0x616000082908) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #14 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #15 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x616000082908, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #16 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #17 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x616000082620, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #18 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x616000082008, pcur=pcur@entry=0x7facde484d60, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #19 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #20 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x616000082008) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #21 row_upd (thr=0x6240000e0188, node=0x616000082008) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #22 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #23 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x616000082008, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #24 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #25 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x616000081d20, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #26 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x616000081708, pcur=pcur@entry=0x7facde487c80, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #27 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #28 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x616000081708) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #29 row_upd (thr=0x6240000e0188, node=0x616000081708) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #30 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #31 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x616000081708, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #32 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #33 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x616000081420, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #34 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x616000080e08, pcur=pcur@entry=0x7facde48aba0, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #35 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #36 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x616000080e08) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #37 row_upd (thr=0x6240000e0188, node=0x616000080e08) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #38 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #39 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x616000080e08, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #40 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #41 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x616000080b20, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #42 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x616000080508, pcur=pcur@entry=0x7facde48dac0, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #43 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #44 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x616000080508) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #45 row_upd (thr=0x6240000e0188, node=0x616000080508) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #46 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #47 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x616000080508, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #48 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #49 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x616000080220, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #50 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007fc08, pcur=pcur@entry=0x7facde4909e0, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #51 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #52 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007fc08) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #53 row_upd (thr=0x6240000e0188, node=0x61600007fc08) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #54 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #55 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007fc08, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #56 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #57 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007f920, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #58 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007f308, pcur=pcur@entry=0x7facde493900, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #59 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #60 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007f308) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #61 row_upd (thr=0x6240000e0188, node=0x61600007f308) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #62 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #63 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007f308, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #64 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #65 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007f020, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #66 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007ea08, pcur=pcur@entry=0x7facde496820, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #67 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #68 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007ea08) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #69 row_upd (thr=0x6240000e0188, node=0x61600007ea08) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #70 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #71 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007ea08, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #72 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #73 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007e720, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #74 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007e108, pcur=pcur@entry=0x7facde499740, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #75 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #76 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007e108) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #77 row_upd (thr=0x6240000e0188, node=0x61600007e108) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #78 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #79 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007e108, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #80 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #81 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007de20, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #82 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007d808, pcur=pcur@entry=0x7facde49c660, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #83 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #84 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007d808) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #85 row_upd (thr=0x6240000e0188, node=0x61600007d808) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #86 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #87 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007d808, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #88 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #89 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007d520, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #90 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007cf08, pcur=pcur@entry=0x7facde49f580, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #91 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #92 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007cf08) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #93 row_upd (thr=0x6240000e0188, node=0x61600007cf08) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #94 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #95 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007cf08, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #96 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #97 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007cc20, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #98 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007c608, pcur=pcur@entry=0x7facde4a24a0, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #99 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #100 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007c608) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #101 row_upd (thr=0x6240000e0188, node=0x61600007c608) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #102 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #103 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007c608, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #104 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #105 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007c320, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #106 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x61600007bd08, pcur=pcur@entry=0x7facde4a53c0, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #107 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #108 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x61600007bd08) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #109 row_upd (thr=0x6240000e0188, node=0x61600007bd08) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #110 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #111 0x0000558697829a9e in row_update_cascade_for_mysql (thr=thr@entry=0x6240000e0188, node=node@entry=0x61600007bd08, table=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #112 0x00005586977e94ee in row_ins_foreign_check_on_constraint (mtr=<optimized out>, entry=<optimized out>, pcur=<optimized out>, foreign=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #113 row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000079608, table=table@entry=0x61700005b808, entry=entry@entry=0x61600007ba20, thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #114 0x000055869789ee39 in row_upd_check_references_constraints (node=node@entry=0x620000050bd8, pcur=pcur@entry=0x7facde4a82e0, table=<optimized out>, index=index@entry=0x616000078408, offsets=<optimized out>, thr=thr@entry=0x6240000e0188, mtr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #115 0x00005586978aef27 in row_upd_sec_index_entry (node=<optimized out>, thr=<optimized out>) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #116 0x00005586978b0c3f in row_upd_sec_step (thr=0x6240000e0188, node=0x620000050bd8) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #117 row_upd (thr=0x6240000e0188, node=0x620000050bd8) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #118 row_upd_step (thr=thr@entry=0x6240000e0188) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #119 0x000055869782d6d7 in row_update_for_mysql (prebuilt=<optimized out>) at /data/src/10.6/storage/innobase/row/row0mysql.cc:1805
      #120 0x00005586975dfd8a in ha_innobase::delete_row (this=0x61d00009e2b8, record=<optimized out>) at /data/src/10.6/storage/innobase/handler/ha_innodb.cc:8264
      #121 0x0000558696ba41c7 in handler::ha_delete_row (this=0x61d00009e2b8, buf=<optimized out>) at /data/src/10.6/sql/handler.cc:7273
      #122 0x00005586970bde1b in mysql_delete (thd=thd@entry=0x62b0000bd218, table_list=<optimized out>, conds=<optimized out>, order_list=order_list@entry=0x62b0000c1cc8, limit=18446744073709551615, options=<optimized out>, result=<optimized out>) at /data/src/10.6/sql/sql_delete.cc:815
      #123 0x000055869649d544 in mysql_execute_command (thd=0x62b0000bd218) at /data/src/10.6/sql/sql_limit.h:67
      #124 0x00005586964613b7 in mysql_parse (thd=0x62b0000bd218, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /data/src/10.6/sql/sql_parse.cc:7998
      #125 0x000055869648d83f in dispatch_command (command=COM_QUERY, thd=0x62b0000bd218, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at /data/src/10.6/sql/sql_class.h:1318
      #126 0x0000558696493be8 in do_command (thd=0x62b0000bd218, blocking=blocking@entry=true) at /data/src/10.6/sql/sql_parse.cc:1397
      #127 0x000055869682be8c in do_handle_one_connection (connect=<optimized out>, put_in_cache=<optimized out>) at /data/src/10.6/sql/sql_connect.cc:1410
      #128 0x000055869682c6e5 in handle_one_connection (arg=arg@entry=0x608000002e38) at /data/src/10.6/sql/sql_connect.cc:1312
      #129 0x00005586973e7409 in pfs_spawn_thread (arg=0x61500000be98) at /data/src/10.6/storage/perfschema/pfs.cc:2201
      #130 0x00007faced67d609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #131 0x00007faced251293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      10.6-03ff588d debug ASAN, Ubuntu 20.04 gcc 9.3.0, --mysqld=--thread-stack=131072

      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  0x00007fae25138949 in ?? () from /lib/x86_64-linux-gnu/libasan.so.5
      [Current thread is 1 (Thread 0x7fae1575a700 (LWP 4011407))]
      #0  0x00007fae25138949 in ?? () from /lib/x86_64-linux-gnu/libasan.so.5
      #1  0x0000556f07701204 in rec_offs_validate (rec=0x7fae1a9b8283 "x\200", index=0x0, offsets=0x7fae1573ab30) at /data/src/10.6/storage/innobase/rem/rem0rec.cc:514
      #2  0x0000556f076f65d6 in cmp_dtuple_rec_with_match_low (dtuple=0x617000030a38, rec=0x7fae1a9b8283 "x\200", offsets=0x7fae1573ab30, n_cmp=1, matched_fields=0x7fae1573aaf0) at /data/src/10.6/storage/innobase/rem/rem0cmp.cc:403
      #3  0x0000556f0767d3bb in page_cur_search_with_match (block=0x7fae1a4dcd80, index=0x616000a3ff20, tuple=0x617000030a38, mode=PAGE_CUR_GE, iup_matched_fields=0x7fae1573b630, ilow_matched_fields=0x7fae1573b670, cursor=0x7fae1573c988, rtr_info=0x0) at /data/src/10.6/storage/innobase/page/page0cur.cc:398
      #4  0x0000556f079a8cde in btr_cur_search_to_nth_level_func (index=0x616000a3ff20, level=0, tuple=0x617000030a38, mode=PAGE_CUR_GE, latch_mode=1, cursor=0x7fae1573c980, ahi_latch=0x0, mtr=0x7fae1573ce20, autoinc=0) at /data/src/10.6/storage/innobase/btr/btr0cur.cc:1983
      #5  0x0000556f077590e2 in btr_pcur_open_low (index=0x616000a3ff20, level=0, tuple=0x617000030a38, mode=PAGE_CUR_GE, latch_mode=1, cursor=0x7fae1573c980, autoinc=0, mtr=0x7fae1573ce20) at /data/src/10.6/storage/innobase/include/btr0pcur.ic:439
      #6  0x0000556f07763028 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x617000030a38, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1629
      #7  0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x617000030320, pcur=0x7fae1573d690, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000129790, thr=0x6240001101a0, mtr=0x7fae1573ded0) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #8  0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x617000030320, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #9  0x0000556f0786d6bf in row_upd_sec_step (node=0x617000030320, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #10 0x0000556f07872fd5 in row_upd (node=0x617000030320, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #11 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #12 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x617000030320, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #13 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae1573ed50, entry=0x61700002ffb8, mtr=0x7fae1573f1f0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #14 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002ffb8, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #15 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002f8a0, pcur=0x7fae1573fa60, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000129190, thr=0x6240001101a0, mtr=0x7fae157402a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #16 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002f8a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #17 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002f8a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #18 0x0000556f07872fd5 in row_upd (node=0x61700002f8a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #19 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #20 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002f8a0, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #21 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae15741120, entry=0x61700002f538, mtr=0x7fae157415c0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #22 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002f538, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #23 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002ee20, pcur=0x7fae15741e30, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000128b90, thr=0x6240001101a0, mtr=0x7fae15742670) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #24 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002ee20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #25 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002ee20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #26 0x0000556f07872fd5 in row_upd (node=0x61700002ee20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #27 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #28 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002ee20, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #29 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae157434f0, entry=0x61700002eab8, mtr=0x7fae15743990) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #30 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002eab8, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #31 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002e3a0, pcur=0x7fae15744200, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000128590, thr=0x6240001101a0, mtr=0x7fae15744a40) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #32 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002e3a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #33 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002e3a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #34 0x0000556f07872fd5 in row_upd (node=0x61700002e3a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #35 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #36 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002e3a0, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #37 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae157458c0, entry=0x61700002e038, mtr=0x7fae15745d60) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #38 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002e038, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #39 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002d920, pcur=0x7fae157465d0, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000127f90, thr=0x6240001101a0, mtr=0x7fae15746e10) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #40 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002d920, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #41 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002d920, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #42 0x0000556f07872fd5 in row_upd (node=0x61700002d920, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #43 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #44 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002d920, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #45 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae15747c90, entry=0x61700002d5b8, mtr=0x7fae15748130) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #46 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002d5b8, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #47 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002cea0, pcur=0x7fae157489a0, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000127990, thr=0x6240001101a0, mtr=0x7fae157491e0) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #48 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002cea0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #49 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002cea0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #50 0x0000556f07872fd5 in row_upd (node=0x61700002cea0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #51 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #52 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002cea0, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #53 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae1574a060, entry=0x61700002cb38, mtr=0x7fae1574a500) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #54 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002cb38, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #55 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002c420, pcur=0x7fae1574ad70, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000127390, thr=0x6240001101a0, mtr=0x7fae1574b5b0) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #56 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002c420, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #57 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002c420, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #58 0x0000556f07872fd5 in row_upd (node=0x61700002c420, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #59 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #60 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002c420, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #61 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae1574c430, entry=0x61700002c0b8, mtr=0x7fae1574c8d0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #62 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002c0b8, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #63 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002b9a0, pcur=0x7fae1574d140, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000126d90, thr=0x6240001101a0, mtr=0x7fae1574d980) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #64 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002b9a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #65 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002b9a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #66 0x0000556f07872fd5 in row_upd (node=0x61700002b9a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #67 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #68 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002b9a0, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #69 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae1574e800, entry=0x61700002b638, mtr=0x7fae1574eca0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #70 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002b638, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #71 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002af20, pcur=0x7fae1574f510, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000126790, thr=0x6240001101a0, mtr=0x7fae1574fd50) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #72 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002af20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #73 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002af20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #74 0x0000556f07872fd5 in row_upd (node=0x61700002af20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #75 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #76 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002af20, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #77 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae15750bd0, entry=0x61700002abb8, mtr=0x7fae15751070) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #78 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002abb8, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #79 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x61700002a4a0, pcur=0x7fae157518e0, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000126190, thr=0x6240001101a0, mtr=0x7fae15752120) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #80 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x61700002a4a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #81 0x0000556f0786d6bf in row_upd_sec_step (node=0x61700002a4a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #82 0x0000556f07872fd5 in row_upd (node=0x61700002a4a0, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #83 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #84 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x61700002a4a0, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #85 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae15752fa0, entry=0x61700002a138, mtr=0x7fae15753440) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #86 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x61700002a138, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #87 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x617000029a20, pcur=0x7fae15753cb0, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000125b90, thr=0x6240001101a0, mtr=0x7fae157544f0) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #88 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x617000029a20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #89 0x0000556f0786d6bf in row_upd_sec_step (node=0x617000029a20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #90 0x0000556f07872fd5 in row_upd (node=0x617000029a20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #91 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #92 0x0000556f077be7a3 in row_update_cascade_for_mysql (thr=0x6240001101a0, node=0x617000029a20, table=0x61800005dd20) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2205
      #93 0x0000556f07761bf7 in row_ins_foreign_check_on_constraint (thr=0x6240001101a0, foreign=0x616000a43e20, pcur=0x7fae15755370, entry=0x6170000296b8, mtr=0x7fae15755810) at /data/src/10.6/storage/innobase/row/row0ins.cc:1341
      #94 0x0000556f07763613 in row_ins_check_foreign_constraint (check_ref=0, foreign=0x616000a43e20, table=0x61800005dd20, entry=0x6170000296b8, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0ins.cc:1746
      #95 0x0000556f07861dd3 in row_upd_check_references_constraints (node=0x620000011c20, pcur=0x7fae15756080, table=0x61800005dd20, index=0x616000a39920, offsets=0x61a000125590, thr=0x6240001101a0, mtr=0x7fae157568c0) at /data/src/10.6/storage/innobase/row/row0upd.cc:295
      #96 0x0000556f0786cd55 in row_upd_sec_index_entry (node=0x620000011c20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2191
      #97 0x0000556f0786d6bf in row_upd_sec_step (node=0x620000011c20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:2267
      #98 0x0000556f07872fd5 in row_upd (node=0x620000011c20, thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3050
      #99 0x0000556f07873ada in row_upd_step (thr=0x6240001101a0) at /data/src/10.6/storage/innobase/row/row0upd.cc:3165
      #100 0x0000556f077bbecb in row_update_for_mysql (prebuilt=0x620000011120) at /data/src/10.6/storage/innobase/row/row0mysql.cc:1805
      #101 0x0000556f074299b8 in ha_innobase::delete_row (this=0x61d000258128, record=0x6190000d3038 "\371\001") at /data/src/10.6/storage/innobase/handler/ha_innodb.cc:8264
      #102 0x0000556f0693045c in handler::ha_delete_row (this=0x61d000258128, buf=0x6190000d3038 "\371\001") at /data/src/10.6/sql/handler.cc:7273
      #103 0x0000556f06dbc442 in TABLE::delete_row (this=0x6190000d2b08) at /data/src/10.6/sql/sql_delete.cc:280
      #104 0x0000556f06db349a in mysql_delete (thd=0x62b0000bd288, table_list=0x62b0000c4398, conds=0x0, order_list=0x62b0000c1ef8, limit=18446744073709551615, options=0, result=0x0) at /data/src/10.6/sql/sql_delete.cc:815
      #105 0x0000556f061016ee in mysql_execute_command (thd=0x62b0000bd288) at /data/src/10.6/sql/sql_parse.cc:4787
      #106 0x0000556f061174f7 in mysql_parse (thd=0x62b0000bd288, rawbuf=0x62b0000c42a8 "DELETE FROM t1", length=14, parser_state=0x7fae15758bc0) at /data/src/10.6/sql/sql_parse.cc:7998
      #107 0x0000556f060edfbc in dispatch_command (command=COM_QUERY, thd=0x62b0000bd288, packet=0x62900028a289 "DELETE FROM t1", packet_length=14, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1886
      #108 0x0000556f060eaceb in do_command (thd=0x62b0000bd288, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1397
      #109 0x0000556f0652bba7 in do_handle_one_connection (connect=0x61100004bc08, put_in_cache=true) at /data/src/10.6/sql/sql_connect.cc:1410
      #110 0x0000556f0652b504 in handle_one_connection (arg=0x61100004bac8) at /data/src/10.6/sql/sql_connect.cc:1312
      #111 0x0000556f07227bfb in pfs_spawn_thread (arg=0x616000441408) at /data/src/10.6/storage/perfschema/pfs.cc:2201
      #112 0x00007fae24c1b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #113 0x00007fae247ef293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Reproducible on 10.2-10.6, ASAN builds (debug and non-debug).

      Attachments

        Issue Links

          Activity

            I think that the stack frame size depends on the compilation options. Especially with clang -fsanitize=address and without any optimization, the stack frames can be very large. I debugged this on an optimized non-ASAN debug build:

            10.5 449871458b49f224b27b26858784ef5408353f1b

            (gdb) break ha_innobase::delete_row
            Breakpoint 1 at 0xdf1bd6: file /mariadb/10.5m/storage/innobase/handler/ha_innodb.cc, line 8435.
            (gdb) run
            Thread 14 "mariadbd" hit Breakpoint 1, ha_innobase::delete_row (
                this=0x7fffc402f850, record=0x7fffc401fb38 "\371\001")
                at /mariadb/10.5m/storage/innobase/handler/ha_innodb.cc:8435
            (gdb) break row_ins_check_foreign_constraint
            Breakpoint 2 at 0x55555649ed5f: file /mariadb/10.5m/storage/innobase/row/row0ins.cc, line 1458.
            (gdb) c
            Continuing.
             
            Thread 14 "mariadbd" hit Breakpoint 2, row_ins_check_foreign_constraint (
                check_ref=check_ref@entry=0, foreign=foreign@entry=0x7fffc4025098, 
                table=table@entry=0x7fffc40200a8, entry=entry@entry=0x7fffc4022ab8, 
                thr=thr@entry=0x7fffc4030e88)
                at /mariadb/10.5m/storage/innobase/row/row0ins.cc:1458
            (gdb) set $stack=$sp
            (gdb) c 13
            Will ignore next 12 crossings of breakpoint 2.  Continuing.
             
            Thread 14 "mariadbd" hit Breakpoint 2, row_ins_check_foreign_constraint (
                check_ref=check_ref@entry=0, foreign=foreign@entry=0x7fffc4025098, 
                table=table@entry=0x7fffc40200a8, entry=entry@entry=0x7fffc4965e08, 
                thr=thr@entry=0x7fffc4030e88)
                at /mariadb/10.5m/storage/innobase/row/row0ins.cc:1458
            (gdb) frame apply all -s -q print $sp-$stack
            $1 = -68848
            $2 = -68840
            $3 = -68712
            $4 = -66632
            $5 = -66600
            $6 = -66520
            $7 = -66472
            $105 = -2280
            $106 = 8

            Yes, there are more than 106 stack frames in this recursion (ha_innobase::delete_row() is stack frame #111 at this point), and the cascading FOREIGN KEY checks (which we limit to 15 levels) consume more than 64KiB of stack space in my build. The FK_MAX_CASCADE_DEL was reduced from 255 to 15 in MDEV-15199 in MariaDB Server 10.2.13.

            How should we fix this? Can you get similar output from your builds? Would creating a more optimized ASAN build be an option?

            marko Marko Mäkelä added a comment - I think that the stack frame size depends on the compilation options. Especially with clang -fsanitize=address and without any optimization, the stack frames can be very large. I debugged this on an optimized non-ASAN debug build: 10.5 449871458b49f224b27b26858784ef5408353f1b (gdb) break ha_innobase::delete_row Breakpoint 1 at 0xdf1bd6: file /mariadb/10.5m/storage/innobase/handler/ha_innodb.cc, line 8435. (gdb) run … Thread 14 "mariadbd" hit Breakpoint 1, ha_innobase::delete_row ( this=0x7fffc402f850, record=0x7fffc401fb38 "\371\001") at /mariadb/10.5m/storage/innobase/handler/ha_innodb.cc:8435 (gdb) break row_ins_check_foreign_constraint Breakpoint 2 at 0x55555649ed5f: file /mariadb/10.5m/storage/innobase/row/row0ins.cc, line 1458. (gdb) c Continuing.   Thread 14 "mariadbd" hit Breakpoint 2, row_ins_check_foreign_constraint ( check_ref=check_ref@entry=0, foreign=foreign@entry=0x7fffc4025098, table=table@entry=0x7fffc40200a8, entry=entry@entry=0x7fffc4022ab8, thr=thr@entry=0x7fffc4030e88) at /mariadb/10.5m/storage/innobase/row/row0ins.cc:1458 (gdb) set $stack=$sp (gdb) c 13 Will ignore next 12 crossings of breakpoint 2. Continuing.   Thread 14 "mariadbd" hit Breakpoint 2, row_ins_check_foreign_constraint ( check_ref=check_ref@entry=0, foreign=foreign@entry=0x7fffc4025098, table=table@entry=0x7fffc40200a8, entry=entry@entry=0x7fffc4965e08, thr=thr@entry=0x7fffc4030e88) at /mariadb/10.5m/storage/innobase/row/row0ins.cc:1458 (gdb) frame apply all -s -q print $sp-$stack $1 = -68848 $2 = -68840 $3 = -68712 $4 = -66632 $5 = -66600 $6 = -66520 $7 = -66472 … $105 = -2280 $106 = 8 … Yes, there are more than 106 stack frames in this recursion ( ha_innobase::delete_row() is stack frame #111 at this point), and the cascading FOREIGN KEY checks (which we limit to 15 levels) consume more than 64KiB of stack space in my build. The FK_MAX_CASCADE_DEL was reduced from 255 to 15 in MDEV-15199 in MariaDB Server 10.2.13. How should we fix this? Can you get similar output from your builds? Would creating a more optimized ASAN build be an option?

            I'm not worried about ASAN builds. For testing purposes, we can simply set thread-stack to any value we want. If there is certainty that the issue only applies to instrumented builds, I don't insist on fixing it at all.

            My concern is whether it can affect any builds we provide to the outside world. While nothing bad seems to be happening on my local release builds, it doesn't mean much – as you said, it can depend at the very least on the compilation options (and I guess on the compiler and what not), and those tend to change.

            That said, here is the output you requested. It's a non-debug (RelWithDebInfo) ASAN build built as

            -DWITH_ASAN=YES -DMYSQL_MAINTAINER_MODE=OFF -DCMAKE_C_FLAGS=-fno-omit-frame-pointer -DCMAKE_CXX_FLAGS=-fno-omit-frame-pointer
            

            all other options default, with gcc 9.3.0, server started with thread-stack=200000:

            10.5 44987145

            Thread 14 "mysqld" hit Breakpoint 1, ha_innobase::delete_row (this=0x61d000055ab8, record=0x6190000a78c8 "\371\001")
                at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:8435
            8435	{
            (gdb)  break row_ins_check_foreign_constraint
            Breakpoint 2 at 0x56215ac99d76: row_ins_check_foreign_constraint. (2 locations)
            (gdb) c
            Continuing.
             
            Thread 14 "mysqld" hit Breakpoint 2, row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000076008, table=table@entry=0x617000040988, 
                entry=entry@entry=0x61600007d820, thr=thr@entry=0x6240000e4188) at /data/src/10.5/storage/innobase/row/row0ins.cc:1458
            1458	{
            (gdb) set $stack=$sp
            (gdb) c 13
            Will ignore next 12 crossings of breakpoint 2.  Continuing.
             
            Thread 14 "mysqld" hit Breakpoint 2, row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000076008, table=table@entry=0x617000040988, 
                entry=entry@entry=0x616000084d20, thr=thr@entry=0x6240000e4188) at /data/src/10.5/storage/innobase/row/row0ins.cc:1458
            1458	{
            (gdb) frame apply all -s -q print $sp-$stack
            $1 = -159120
            $2 = -159112
            $3 = -158712
            $4 = -153928
            $5 = -153928
            $6 = -153928
            $7 = -153800
            $8 = -153368
            $9 = -153368
            $10 = -146872
            $11 = -146472
            $12 = -141688
            $13 = -141688
            $14 = -141688
            $15 = -141560
            $16 = -141128
            $17 = -141128
            $18 = -134632
            $19 = -134232
            $20 = -129448
            $21 = -129448
            $22 = -129448
            $23 = -129320
            $24 = -128888
            $25 = -128888
            $26 = -122392
            $27 = -121992
            $28 = -117208
            $29 = -117208
            $30 = -117208
            $31 = -117080
            $32 = -116648
            $33 = -116648
            $34 = -110152
            $35 = -109752
            $36 = -104968
            $37 = -104968
            $38 = -104968
            $39 = -104840
            $40 = -104408
            $41 = -104408
            $42 = -97912
            $43 = -97512
            $44 = -92728
            $45 = -92728
            $46 = -92728
            $47 = -92600
            $48 = -92168
            $49 = -92168
            $50 = -85672
            $51 = -85272
            $52 = -80488
            $53 = -80488
            $54 = -80488
            $55 = -80360
            $56 = -79928
            $57 = -79928
            $58 = -73432
            $59 = -73032
            $60 = -68248
            $61 = -68248
            $62 = -68248
            $63 = -68120
            $64 = -67688
            $65 = -67688
            $66 = -61192
            $67 = -60792
            $68 = -56008
            $69 = -56008
            $70 = -56008
            $71 = -55880
            $72 = -55448
            $73 = -55448
            $74 = -48952
            $75 = -48552
            $76 = -43768
            $77 = -43768
            $78 = -43768
            $79 = -43640
            $80 = -43208
            $81 = -43208
            $82 = -36712
            $83 = -36312
            $84 = -31528
            $85 = -31528
            $86 = -31528
            $87 = -31400
            $88 = -30968
            $89 = -30968
            $90 = -24472
            $91 = -24072
            $92 = -19288
            $93 = -19288
            $94 = -19288
            $95 = -19160
            $96 = -18728
            $97 = -18728
            $98 = -12232
            $99 = -11832
            $100 = -7048
            $101 = -7048
            $102 = -7048
            $103 = -6920
            $104 = -6488
            $105 = -6488
            $106 = 8
            $107 = 408
            $108 = 5192
            $109 = 5192
            $110 = 5192
            $111 = 5320
            $112 = 5736
            $113 = 5816
            $114 = 6088
            $115 = 9304
            $116 = 11672
            $117 = 12024
            $118 = 19688
            $119 = 20008
            $120 = 20648
            $121 = 20680
            $122 = 20728
            $123 = 20920
            

            elenst Elena Stepanova added a comment - I'm not worried about ASAN builds. For testing purposes, we can simply set thread-stack to any value we want. If there is certainty that the issue only applies to instrumented builds, I don't insist on fixing it at all. My concern is whether it can affect any builds we provide to the outside world. While nothing bad seems to be happening on my local release builds, it doesn't mean much – as you said, it can depend at the very least on the compilation options (and I guess on the compiler and what not), and those tend to change. That said, here is the output you requested. It's a non-debug (RelWithDebInfo) ASAN build built as -DWITH_ASAN=YES -DMYSQL_MAINTAINER_MODE=OFF -DCMAKE_C_FLAGS=-fno-omit-frame-pointer -DCMAKE_CXX_FLAGS=-fno-omit-frame-pointer all other options default, with gcc 9.3.0, server started with thread-stack=200000: 10.5 44987145 Thread 14 "mysqld" hit Breakpoint 1, ha_innobase::delete_row (this=0x61d000055ab8, record=0x6190000a78c8 "\371\001") at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:8435 8435 { (gdb) break row_ins_check_foreign_constraint Breakpoint 2 at 0x56215ac99d76: row_ins_check_foreign_constraint. (2 locations) (gdb) c Continuing.   Thread 14 "mysqld" hit Breakpoint 2, row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000076008, table=table@entry=0x617000040988, entry=entry@entry=0x61600007d820, thr=thr@entry=0x6240000e4188) at /data/src/10.5/storage/innobase/row/row0ins.cc:1458 1458 { (gdb) set $stack=$sp (gdb) c 13 Will ignore next 12 crossings of breakpoint 2. Continuing.   Thread 14 "mysqld" hit Breakpoint 2, row_ins_check_foreign_constraint (check_ref=check_ref@entry=0, foreign=foreign@entry=0x616000076008, table=table@entry=0x617000040988, entry=entry@entry=0x616000084d20, thr=thr@entry=0x6240000e4188) at /data/src/10.5/storage/innobase/row/row0ins.cc:1458 1458 { (gdb) frame apply all -s -q print $sp-$stack $1 = -159120 $2 = -159112 $3 = -158712 $4 = -153928 $5 = -153928 $6 = -153928 $7 = -153800 $8 = -153368 $9 = -153368 $10 = -146872 $11 = -146472 $12 = -141688 $13 = -141688 $14 = -141688 $15 = -141560 $16 = -141128 $17 = -141128 $18 = -134632 $19 = -134232 $20 = -129448 $21 = -129448 $22 = -129448 $23 = -129320 $24 = -128888 $25 = -128888 $26 = -122392 $27 = -121992 $28 = -117208 $29 = -117208 $30 = -117208 $31 = -117080 $32 = -116648 $33 = -116648 $34 = -110152 $35 = -109752 $36 = -104968 $37 = -104968 $38 = -104968 $39 = -104840 $40 = -104408 $41 = -104408 $42 = -97912 $43 = -97512 $44 = -92728 $45 = -92728 $46 = -92728 $47 = -92600 $48 = -92168 $49 = -92168 $50 = -85672 $51 = -85272 $52 = -80488 $53 = -80488 $54 = -80488 $55 = -80360 $56 = -79928 $57 = -79928 $58 = -73432 $59 = -73032 $60 = -68248 $61 = -68248 $62 = -68248 $63 = -68120 $64 = -67688 $65 = -67688 $66 = -61192 $67 = -60792 $68 = -56008 $69 = -56008 $70 = -56008 $71 = -55880 $72 = -55448 $73 = -55448 $74 = -48952 $75 = -48552 $76 = -43768 $77 = -43768 $78 = -43768 $79 = -43640 $80 = -43208 $81 = -43208 $82 = -36712 $83 = -36312 $84 = -31528 $85 = -31528 $86 = -31528 $87 = -31400 $88 = -30968 $89 = -30968 $90 = -24472 $91 = -24072 $92 = -19288 $93 = -19288 $94 = -19288 $95 = -19160 $96 = -18728 $97 = -18728 $98 = -12232 $99 = -11832 $100 = -7048 $101 = -7048 $102 = -7048 $103 = -6920 $104 = -6488 $105 = -6488 $106 = 8 $107 = 408 $108 = 5192 $109 = 5192 $110 = 5192 $111 = 5320 $112 = 5736 $113 = 5816 $114 = 6088 $115 = 9304 $116 = 11672 $117 = 12024 $118 = 19688 $119 = 20008 $120 = 20648 $121 = 20680 $122 = 20728 $123 = 20920

            As a simple foolproof-ing measure, I suppose too low values of thread-stack could be simply prohibited; I don't know if there is any practical reason in allowing to reduce it below the default value at all, as well as keeping the default value dangerously close to the borderline.

            elenst Elena Stepanova added a comment - As a simple foolproof-ing measure, I suppose too low values of thread-stack could be simply prohibited; I don't know if there is any practical reason in allowing to reduce it below the default value at all, as well as keeping the default value dangerously close to the borderline.

            MDEV-25123 included the following:

            diff --git a/include/my_pthread.h b/include/my_pthread.h
            index 66876032178..a1b80889ed3 100644
            --- a/include/my_pthread.h
            +++ b/include/my_pthread.h
            @@ -667,7 +667,11 @@ extern void my_mutex_end(void);
               with the current number of keys and key parts.
             */
             #if defined(__SANITIZE_ADDRESS__) || defined(WITH_UBSAN)
            +#ifndef DBUG_OFF
            +#define DEFAULT_THREAD_STACK   (1024*1024L)
            +#else
             #define DEFAULT_THREAD_STACK   (383*1024L) /* 392192 */
            +#endif
             #else
             #define DEFAULT_THREAD_STACK   (292*1024L) /* 299008 */
             #endif
            

            Would that have fixed this problem for you?

            marko Marko Mäkelä added a comment - MDEV-25123 included the following: diff --git a/include/my_pthread.h b/include/my_pthread.h index 66876032178..a1b80889ed3 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -667,7 +667,11 @@ extern void my_mutex_end(void); with the current number of keys and key parts. */ #if defined(__SANITIZE_ADDRESS__) || defined(WITH_UBSAN) +#ifndef DBUG_OFF +#define DEFAULT_THREAD_STACK (1024*1024L) +#else #define DEFAULT_THREAD_STACK (383*1024L) /* 392192 */ +#endif #else #define DEFAULT_THREAD_STACK (292*1024L) /* 299008 */ #endif Would that have fixed this problem for you?
            danblack Daniel Black added a comment -

            To ensure the default (regardless of build) remains sane a MTR test that hits ER_FK_DEPTH_EXCEEDED would be one option.

            The same not-ASAN/UBSAN/Debug MTR test with a thread_stack _sizeof the 128k minium would ensure the FK_MAX_CASCADE_DEL is compatible with the minium thread_stack_size.

            danblack Daniel Black added a comment - To ensure the default (regardless of build) remains sane a MTR test that hits ER_FK_DEPTH_EXCEEDED would be one option. The same not-ASAN/UBSAN/Debug MTR test with a thread_stack _sizeof the 128k minium would ensure the FK_MAX_CASCADE_DEL is compatible with the minium thread_stack_size.

            As I understand, the originally reported issue was fixed (or re-fixed) in the scope of MDEV-16660. marko: is it right?

            danblack: I have no opinion on the MTR test suggestion. If you think it's something worth doing and want to do it in the scope of this ticket, please feel free to take it, otherwise after Marko's confirmation I'll close it.

            elenst Elena Stepanova added a comment - As I understand, the originally reported issue was fixed (or re-fixed) in the scope of MDEV-16660 . marko : is it right? danblack : I have no opinion on the MTR test suggestion. If you think it's something worth doing and want to do it in the scope of this ticket, please feel free to take it, otherwise after Marko's confirmation I'll close it.

            People

              danblack Daniel Black
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.