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

Assertion `li->sphead' failed in bool LEX::sp_package_spec_check_cyclic_dependency(THD *, const Lex_ident_sys_st &, const Lex_ident_sys_st &) const

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 13.1
    • N/A
    • Stored routines
    • None
    • Not for Release Notes
    • Q3/2026 Server Development

    Description

      MTR Test case

      SET sql_mode=ORACLE;
      DELIMITER $$;
      CREATE PACKAGE p1 AS TYPE r IS RECORD(x INT); END;$$
      CREATE PACKAGE p2 AS TYPE r IS RECORD(x INT); TYPE c IS REF CURSOR RETURN p1.r; END;$$
      DELIMITER ;$$
      SHOW CREATE PACKAGE p2;     
      

      Leads to

      MDEV-39587 CS 13.1.0 7aa4eefd67fea09b3ab51e81e63f1159d6093a86 (Optimized, Clang 18.1.3-11) Build 05/08/2026

      Core was generated by `/test/mtest/MDEV-39587/MD050826-mariadb-13.1.0-linux-x86_64-opt/bin/mariadbd --'.
      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  0x00005f2fefe3ea3c in LEX::sp_package_spec_check_cyclic_dependency (this=this@entry=0x71f33484bf90, thd=<optimized out>, db=..., name=...)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_lex.cc:13479
      13479	    if (li->sphead->m_handler == &sp_handler_package_spec &&
      [Current thread is 1 (LWP 2562083)]
      (gdb) bt
      #0  0x00005f2fefe3ea3c in LEX::sp_package_spec_check_cyclic_dependency (this=this@entry=0x71f33484bf90, thd=<optimized out>, db=@0x71f33484ad10: {<st_mysql_const_lex_string> = {str = 0x69d46803d930 "test", length = 4}, <Sql_alloc> = {<No data fields>}, <No data fields>}, name=@0x71f33484ba10: {<st_mysql_const_lex_string> = {str = 0x69d46803e1a0 "p1", length = 2}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_lex.cc:13479
      #1  0x00005f2fefe3ebba in LEX::declare_type_ref_cursor_return_typedef (this=0x71f33484bf90, thd=0x69d468000c70, type_name=@0x71f33484af40: {<st_mysql_const_lex_string> = {str = 0x69d46803e0a0 "c", length = 1}, <Sql_alloc> = {<No data fields>}, <No data fields>}, db=@0x71f33484bab0: {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <Sql_alloc> = {<No data fields>}, <No data fields>}, package=@0x71f33484ba10: {<st_mysql_const_lex_string> = {str = 0x69d46803e1a0 "p1", length = 2}, <Sql_alloc> = {<No data fields>}, <No data fields>}, type=@0x71f33484b9e0: {<st_mysql_const_lex_string> = {str = 0x69d46803e1c0 "r", length = 1}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_lex.cc:13539
      #2  0x00005f2ff0088810 in ORAparse (thd=thd@entry=0x69d468000c70)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_yacc.yy:21047
      #3  0x00005f2fefe59f5f in parse_sql (thd=thd@entry=0x69d468000c70, parser_state=parser_state@entry=0x71f33484bb70, creation_ctx=creation_ctx@entry=0x69d468017e20, do_pfs_digest=false)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_parse.cc:10380
      #4  0x00005f2fefd9d376 in sp_compile (thd=thd@entry=0x69d468000c70, defstr=defstr@entry=0x71f33484bd58, sql_mode=sql_mode@entry=8858427918, parent=0x0, creation_ctx=0x69d468017e20)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sp.cc:909
      #5  0x00005f2fefd9cfc7 in Sp_handler::db_load_routine (this=this@entry=0x5f2ff11338e0 <sp_handler_package_spec>, thd=thd@entry=0x69d468000c70, name=name@entry=0x69d468017c90, sphp=sphp@entry=0x71f33484fe50, sql_mode=sql_mode@entry=8858427918, sql_path=@0x71f33484f5a8: {m_schemas = {{<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x69d468013730 "CURRENT_SCHEMA", length = 0}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>} <repeats 15 times>}, m_count = 1}, params=@0x71f33484dfa0: {str = 0x5f2ff08b50af "", length = 0}, returns=@0x71f33484e000: {str = 0x5f2ff08b50af "", length = 0}, body=@0x71f33484dfb0: {str = 0x69d468017d60 "AS TYPE r IS RECORD(x INT); TYPE c IS REF CURSOR RETURN p1.r; END", length = 65}, chistics=@0x71f33484dfe0: {comment = {str = 0x5f2ff08b50af "", length = 0}, suid = SP_IS_SUID, detistic = false, daccess = SP_CONTAINS_SQL, agg_type = NOT_AGGREGATE}, definer=@0x71f33484dfc0: {user = {str = 0x69d468017d50 "root", length = 4}, host = {str = 0x69d468017d55 "localhost", length = 9}}, created=20260805154453, modified=20260805154453, parent=0x0, creation_ctx=0x69d468017e20)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sp.cc:1036
      #6  0x00005f2fefd9cced in Sp_handler::db_find_routine (this=0x5f2ff11338e0 <sp_handler_package_spec>, thd=0x69d468000c70, name=0x69d468017c90, sphp=sphp@entry=0x71f33484fe50)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sp.cc:776
      #7  0x00005f2fefd9f588 in Sp_handler::sp_show_create_routine (this=0x71f33484bf90, thd=0x5f2ff08bcd14 <typeinfo name for sp_lex_db_load_routine>, name=0x0)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sp.cc:2042
      #8  0x00005f2fefe5269f in mysql_execute_command (thd=thd@entry=0x69d468000c70, is_called_from_prepared_stmt=false)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_parse.cc:5689
      #9  0x00005f2fefe4d9b2 in mysql_parse (thd=thd@entry=0x69d468000c70, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x71f3348504c0)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_parse.cc:7956
      #10 0x00005f2fefe4bf70 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x69d468000c70, packet=packet@entry=0x69d468008e01 "SHOW CREATE PACKAGE p2", packet_length=packet_length@entry=22, blocking=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_parse.cc:1903
      #11 0x00005f2fefe4de31 in do_command (thd=thd@entry=0x69d468000c70, blocking=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_parse.cc:1437
      #12 0x00005f2feff78e4d in do_handle_one_connection (connect=<optimized out>, connect@entry=0x5f30237bc100, put_in_cache=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_connect.cc:1514
      #13 0x00005f2feff78c82 in handle_one_connection (arg=arg@entry=0x5f30237bc100)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/sql/sql_connect.cc:1426
      #14 0x00005f2ff031caf3 in pfs_spawn_thread (arg=0x5f30237dc6f0)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_opt/storage/perfschema/pfs.cc:2198
      #15 0x000071f71aa9caa4 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #16 0x000071f71ab29c6c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      MDEV-39587 CS 13.1.0 7aa4eefd67fea09b3ab51e81e63f1159d6093a86 (Debug, Clang 18.1.3-11) Build 05/08/2026

      mariadbd: /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc:13478: bool LEX::sp_package_spec_check_cyclic_dependency(THD *, const Lex_ident_sys_st &, const Lex_ident_sys_st &) const: Assertion `li->sphead' failed.
      

      MDEV-39587 CS 13.1.0 7aa4eefd67fea09b3ab51e81e63f1159d6093a86 (Debug, Clang 18.1.3-11) Build 05/08/2026

      Core was generated by `/test/mtest/MDEV-39587/MD050826-mariadb-13.1.0-linux-x86_64-dbg/bin/mariadbd --'.
      Program terminated with signal SIGABRT, Aborted.
      SET sql_mode=ORACLE;
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 2535503)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x000079f8c304527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x000079f8c30288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000079f8c302881b in __assert_fail_base (fmt=0x79f8c31d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x6230fea5e461 "li->sphead", file=file@entry=0x6230fea5a653 "/test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc", line=line@entry=13478, function=function@entry=0x6230fea5e3c9 "bool LEX::sp_package_spec_check_cyclic_dependency(THD *, const Lex_ident_sys_st &, const Lex_ident_sys_st &) const") at ./assert/assert.c:96
      #6  0x000079f8c303b517 in __assert_fail (assertion=0x6230fea5e461 "li->sphead", file=0x6230fea5a653 "/test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc", line=13478, function=0x6230fea5e3c9 "bool LEX::sp_package_spec_check_cyclic_dependency(THD *, const Lex_ident_sys_st &, const Lex_ident_sys_st &) const")at ./assert/assert.c:105
      #7  0x00006230fd8aafa5 in LEX::sp_package_spec_check_cyclic_dependency (this=0x79f4e46369b0, thd=0x71d614000d60, db=@0x79f4e462dc50: {<st_mysql_const_lex_string> = {str = 0x71d61404e970 "test", length = 4}, <Sql_alloc> = {<No data fields>}, <No data fields>}, name=@0x79f4e46311e0: {<st_mysql_const_lex_string> = {str = 0x71d61404f1e0 "p1", length = 2}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc:13478
      #8  0x00006230fd8ab2c2 in LEX::declare_type_ref_cursor_return_typedef (this=0x79f4e46369b0, thd=0x71d614000d60, type_name=@0x79f4e4635770: {<st_mysql_const_lex_string> = {str = 0x71d61404f0e0 "c", length = 1}, <Sql_alloc> = {<No data fields>}, <No data fields>}, db=@0x79f4e46311f0: {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <Sql_alloc> = {<No data fields>}, <No data fields>}, package=@0x79f4e46311e0: {<st_mysql_const_lex_string> = {str = 0x71d61404f1e0 "p1", length = 2}, <Sql_alloc> = {<No data fields>}, <No data fields>}, type=@0x79f4e46311d0: {<st_mysql_const_lex_string> = {str = 0x71d61404f200 "r", length = 1}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc:13539
      #9  0x00006230fdce769a in ORAparse (thd=0x71d614000d60)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_yacc.yy:21047
      #10 0x00006230fd8ea8fa in parse_sql (thd=0x71d614000d60, parser_state=0x79f4e4636450, creation_ctx=0x71d61401a680, do_pfs_digest=false)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:10380
      #11 0x00006230fd78fe4f in sp_compile (thd=0x71d614000d60, defstr=0x79f4e4636760, sql_mode=8858427918, parent=0x0, creation_ctx=0x71d61401a680)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:909
      #12 0x00006230fd78f6da in Sp_handler::db_load_routine (this=0x6230ff51e5c0 <sp_handler_package_spec>, thd=0x71d614000d60, name=0x71d61401a4f0, sphp=0x79f4e463a1a8, sql_mode=8858427918, sql_path=@0x79f4e463a070: {m_schemas = {{<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x71d614019bf0 "CURRENT_SCHEMA", length = 0}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>} <repeats 15 times>}, m_count = 1}, params=@0x79f4e4638ac8: {str = 0x6230fec7a248 "", length = 0}, returns=@0x79f4e4638ab8: {str = 0x6230fec7a248 "", length = 0}, body=@0x79f4e4638aa8: {str = 0x71d61401a5c0 "AS TYPE r IS RECORD(x INT); TYPE c IS REF CURSOR RETURN p1.r; END", length = 65}, chistics=@0x79f4e4638a70: {comment = {str = 0x6230fec7a248 "", length = 0}, suid = SP_IS_SUID, detistic = false, daccess = SP_CONTAINS_SQL, agg_type = NOT_AGGREGATE}, definer=@0x79f4e4638a28: {user = {str = 0x71d61401a5b0 "root", length = 4}, host = {str = 0x71d61401a5b5 "localhost", length = 9}}, created=20260805154426, modified=20260805154426, parent=0x0, creation_ctx=0x71d61401a680)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:1036
      #13 0x00006230fd78f1ba in Sp_handler::db_find_routine (this=0x6230ff51e5c0 <sp_handler_package_spec>, thd=0x71d614000d60, name=0x71d61401a4f0, sphp=0x79f4e463a1a8)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:776
      #14 0x00006230fd794063 in Sp_handler::sp_show_create_routine (this=0x6230ff51e5c0 <sp_handler_package_spec>, thd=0x71d614000d60, name=0x71d61401a4f0)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:2042
      #15 0x00006230fd8e2d88 in mysql_execute_command (thd=0x71d614000d60, is_called_from_prepared_stmt=false)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:5689
      #16 0x00006230fd8d2c34 in mysql_parse (thd=0x71d614000d60, rawbuf=0x71d61401a430 "SHOW CREATE PACKAGE p2", length=22, parser_state=0x79f4e463b9c0)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:7956
      #17 0x00006230fd8cff5d in dispatch_command (command=COM_QUERY, thd=0x71d614000d60, packet=0x71d61400b661 "SHOW CREATE PACKAGE p2", packet_length=22, blocking=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:1903
      #18 0x00006230fd8d37e3 in do_command (thd=0x71d614000d60, blocking=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:1437
      #19 0x00006230fdad7da9 in do_handle_one_connection (connect=0x6231019303d0, put_in_cache=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_connect.cc:1514
      #20 0x00006230fdad7b4e in handle_one_connection (arg=0x62310191ca20)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_connect.cc:1426
      #21 0x000079f8c309caa4 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #22 0x000079f8c3129c6c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Attachments

        Issue Links

          Activity

            People

              bar Alexander Barkov
              ramesh Ramesh Sivaraman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 4h 47m
                  4h 47m
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 1.25h Time Not Required
                  1.25h

                  Git Integration

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