Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
13.1
-
None
-
Not for Release Notes
-
Q3/2026 Server Maintenance
Description
SET sql_mode=ORACLE; |
CREATE DATABASE db1; |
USE db1; |
CREATE TABLE t1 (a INT, b VARCHAR(32)); |
INSERT INTO t1 VALUES (1,'one'),(2,'two'); |
|
|
DELIMITER $$
|
CREATE PACKAGE pkg AS |
TYPE rec IS RECORD (a INT, b VARCHAR(32)); |
TYPE cur IS REF CURSOR RETURN pkg.rec; |
END; |
$$
|
CREATE PROCEDURE p2 AS |
TYPE localcur IS REF CURSOR RETURN pkg.rec; |
c localcur;
|
v pkg.rec;
|
BEGIN
|
OPEN c FOR SELECT a,b FROM t1; |
FETCH c INTO v; |
CLOSE c; |
END; |
$$
|
DELIMITER ;
|
|
|
CALL p2;
|
Leads to
|
MDEV-39587 CS 13.1.0 1693e0aedcae8e09972817db6235ab0a1b696125 (Debug, Clang 18.1.3-11) Build 21/07/2026 |
mariadbd: /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc:13401: 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 1693e0aedcae8e09972817db6235ab0a1b696125 (Debug, Clang 18.1.3-11) Build 21/07/2026 |
Core was generated by `/test/mtest/MDEV-39587/MD210726-mariadb-13.1.0-linux-x86_64-dbg/bin/mariadbd --'.
|
Program terminated with signal SIGABRT, Aborted.
|
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
|
[Current thread is 1 (LWP 910911)]
|
(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 0x0000721d7c84527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
|
#4 0x0000721d7c8288ff in __GI_abort () at ./stdlib/abort.c:79
|
#5 0x0000721d7c82881b in __assert_fail_base (fmt=0x721d7c9d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x63fd9f9aa87c "li->sphead", file=file@entry=0x63fd9f9a6ac6 "/test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc", line=line@entry=13401, function=function@entry=0x63fd9f9aa7e4 "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 0x0000721d7c83b517 in __assert_fail (assertion=0x63fd9f9aa87c "li->sphead", file=0x63fd9f9a6ac6 "/test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc", line=13401, function=0x63fd9f9aa7e4 "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 0x000063fd9e81deb0 in LEX::sp_package_spec_check_cyclic_dependency (this=0x721d78049670, thd=0x69facc000d60, db=@0x721d780409e0: {<st_mysql_const_lex_string> = {str = 0x69facc09ef30 "db1", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>}, name=@0x721d78043f50: {<st_mysql_const_lex_string> = {str = 0x69facc09f970 "pkg", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc:13401
|
#8 0x000063fd9e81e1d2 in LEX::declare_type_ref_cursor_return_typedef (this=0x721d78049670, thd=0x69facc000d60, type_name=@0x721d78048430: {<st_mysql_const_lex_string> = {str = 0x69facc09f870 "cur", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>}, db=@0x721d78043f60: {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <Sql_alloc> = {<No data fields>}, <No data fields>}, package=@0x721d78043f50: {<st_mysql_const_lex_string> = {str = 0x69facc09f970 "pkg", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>}, type=@0x721d78043f40: {<st_mysql_const_lex_string> = {str = 0x69facc09f990 "rec", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc:13462
|
#9 0x000063fd9ec52753 in ORAparse (thd=0x69facc000d60)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_yacc.yy:20908
|
#10 0x000063fd9e85d4ea in parse_sql (thd=0x69facc000d60, parser_state=0x721d78049110, creation_ctx=0x69facc0a4560, do_pfs_digest=false)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:10372
|
#11 0x000063fd9e70be6f in sp_compile (thd=0x69facc000d60, defstr=0x721d78049420, sql_mode=8858427918, parent=0x0, creation_ctx=0x69facc0a4560)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:909
|
#12 0x000063fd9e70b6fa in Sp_handler::db_load_routine (this=0x63fda044e5c0 <sp_handler_package_spec>, thd=0x69facc000d60, name=0x721d7804d1f0, sphp=0x721d7804d210, sql_mode=8858427918, sql_path=@0x721d7804cd10: {m_schemas = {{<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x69facc09c7c0 "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=@0x721d7804b768: {str = 0x63fd9fbc5516 "", length = 0}, returns=@0x721d7804b758: {str = 0x63fd9fbc5516 "", length = 0}, body=@0x721d7804b748: {str = 0x69facc0a4490 "AS\n TYPE rec IS RECORD (a INT, b VARCHAR(32));\n TYPE cur IS REF CURSOR RETURN pkg.rec; \nEND", length = 94}, chistics=@0x721d7804b710: {comment = {str = 0x63fd9fbc5516 "", length = 0}, suid = SP_IS_SUID, detistic = false, daccess = SP_CONTAINS_SQL, agg_type = NOT_AGGREGATE}, definer=@0x721d7804b6c8: {user = {str = 0x69facc0a4480 "root", length = 4}, host = {str = 0x69facc0a4485 "localhost", length = 9}}, created=20260721083225, modified=20260721083225, parent=0x0, creation_ctx=0x69facc0a4560)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:1036
|
#13 0x000063fd9e70b1da in Sp_handler::db_find_routine (this=0x63fda044e5c0 <sp_handler_package_spec>, thd=0x69facc000d60, name=0x721d7804d1f0, sphp=0x721d7804d210)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:776
|
#14 0x000063fd9e70bbb1 in Sp_handler::db_find_and_cache_routine (this=0x63fda044e5c0 <sp_handler_package_spec>, thd=0x69facc000d60, name=0x721d7804d1f0, sp=0x721d7804d210)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:800
|
#15 0x000063fd9e712959 in Sp_handler::sp_cache_routine (this=0x63fda044e5c0 <sp_handler_package_spec>, thd=0x69facc000d60, name=0x721d7804d1f0, sp=0x721d7804d210)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:3010
|
#16 0x000063fd9e71150f in Sp_handler::sp_cache_routine_reentrant (this=0x63fda044e5c0 <sp_handler_package_spec>, thd=0x69facc000d60, name=0x721d7804d1f0, sp=0x721d7804d210)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:2524
|
#17 0x000063fd9e711584 in Sp_handler::sp_cache_routine_reentrant_suppress_errors (this=0x63fda044e5c0 <sp_handler_package_spec>, thd=0x69facc000d60, name=0x721d7804d1f0, sp=0x721d7804d210)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:2540
|
#18 0x000063fd9e711625 in Sp_handler::find_package_spec (thd=0x69facc000d60, db=@0x721d7804d2b8: {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x69facc0a3b10 "db1", length = 3}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, package=@0x721d78050910: {str = 0x69facc0a4380 "pkg", length = 3})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:2560
|
#19 0x000063fd9e726ec7 in sp_head::get_typedef_package_spec_or_error (this=0x69facc0a2c80, thd=0x69facc000d60, tdef=0x721d7804d3b0, package=@0x721d78050910: {<st_mysql_const_lex_string> = {str = 0x69facc0a4380 "pkg", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>}, type=@0x721d78050900: {<st_mysql_const_lex_string> = {str = 0x69facc0a43a0 "rec", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp_head.cc:4480
|
#20 0x000063fd9e81e214 in LEX::declare_type_ref_cursor_return_typedef (this=0x721d78056030, thd=0x69facc000d60, type_name=@0x721d78054e38: {<st_mysql_const_lex_string> = {str = 0x69facc0a4270 "localcur", length = 8}, <Sql_alloc> = {<No data fields>}, <No data fields>}, db=@0x721d78050920: {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <Sql_alloc> = {<No data fields>}, <No data fields>}, package=@0x721d78050910: {<st_mysql_const_lex_string> = {str = 0x69facc0a4380 "pkg", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>}, type=@0x721d78050900: {<st_mysql_const_lex_string> = {str = 0x69facc0a43a0 "rec", length = 3}, <Sql_alloc> = {<No data fields>}, <No data fields>})at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_lex.cc:13466
|
#21 0x000063fd9ec52753 in ORAparse (thd=0x69facc000d60)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_yacc.yy:20908
|
#22 0x000063fd9e85d4ea in parse_sql (thd=0x69facc000d60, parser_state=0x721d78055ad0, creation_ctx=0x69facc01a860, do_pfs_digest=false)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:10372
|
#23 0x000063fd9e70be6f in sp_compile (thd=0x69facc000d60, defstr=0x721d78055de0, sql_mode=8858427918, parent=0x0, creation_ctx=0x69facc01a860)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:909
|
#24 0x000063fd9e70b6fa in Sp_handler::db_load_routine (this=0x63fda044e5b0 <sp_handler_procedure>, thd=0x69facc000d60, name=0x721d78059b08, sphp=0x721d78059cd8, sql_mode=8858427918, sql_path=@0x721d780596d0: {m_schemas = {{<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x69facc089bc0 "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=@0x721d78058128: {str = 0x63fd9fbc5516 "", length = 0}, returns=@0x721d78058118: {str = 0x63fd9fbc5516 "", length = 0}, body=@0x721d78058108: {str = 0x69facc01a750 "AS\n TYPE localcur IS REF CURSOR RETURN pkg.rec; \n c localcur;\n v pkg.rec;\nBEGIN\n OPEN c FOR SELECT a,b FROM t1;\n FETCH c INTO v;\n CLOSE c;\nEND", length = 149}, chistics=@0x721d780580d0: {comment = {str = 0x63fd9fbc5516 "", length = 0}, suid = SP_IS_SUID, detistic = false, daccess = SP_CONTAINS_SQL, agg_type = NOT_AGGREGATE}, definer=@0x721d78058088: {user = {str = 0x69facc01a740 "root", length = 4}, host = {str = 0x69facc01a745 "localhost", length = 9}}, created=20260721083225, modified=20260721083225, parent=0x0, creation_ctx=0x69facc01a860)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:1036
|
#25 0x000063fd9e70b1da in Sp_handler::db_find_routine (this=0x63fda044e5b0 <sp_handler_procedure>, thd=0x69facc000d60, name=0x721d78059b08, sphp=0x721d78059cd8)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:776
|
#26 0x000063fd9e70bbb1 in Sp_handler::db_find_and_cache_routine (this=0x63fda044e5b0 <sp_handler_procedure>, thd=0x69facc000d60, name=0x721d78059b08, sp=0x721d78059cd8)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:800
|
#27 0x000063fd9e712959 in Sp_handler::sp_cache_routine (this=0x63fda044e5b0 <sp_handler_procedure>, thd=0x69facc000d60, name=0x721d78059b08, sp=0x721d78059cd8)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:3010
|
#28 0x000063fd9e712770 in Sroutine_hash_entry::sp_cache_routine (this=0x69facc01a4a0, thd=0x69facc000d60, sp=0x721d78059cd8)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sp.cc:2969
|
#29 0x000063fd9e77d7ee in open_and_process_routine (thd=0x69facc000d60, prelocking_ctx=0x69facc0051c8, rt=0x69facc01a4a0, prelocking_strategy=0x721d78059f50, has_prelocking_list=false, ot_ctx=0x721d78059e38, need_prelocking=0x721d78059e17, routine_modifies_data=0x721d78059e16)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_base.cc:3965
|
#30 0x000063fd9e77bd31 in open_tables (thd=0x69facc000d60, options=@0x69facc0068ac: {m_options = DDL_options_st::OPT_NONE}, start=0x721d78059f00, counter=0x721d78059eec, flags=0, prelocking_strategy=0x721d78059f50)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_base.cc:4844
|
#31 0x000063fd9e77f12d in open_and_lock_tables (thd=0x69facc000d60, options=@0x69facc0068ac: {m_options = DDL_options_st::OPT_NONE}, tables=0x0, derived=true, flags=0, prelocking_strategy=0x721d78059f50)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_base.cc:5793
|
#32 0x000063fd9e78ebde in open_and_lock_tables (thd=0x69facc000d60, tables=0x0, derived=true, flags=0)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_base.h:545
|
#33 0x000063fd9e84a2a0 in Sql_cmd_call::execute (this=0x69facc01a680, thd=0x69facc000d60)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:3279
|
#34 0x000063fd9e8568d8 in mysql_execute_command (thd=0x69facc000d60, is_called_from_prepared_stmt=false)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:5905
|
#35 0x000063fd9e845a54 in mysql_parse (thd=0x69facc000d60, rawbuf=0x69facc01a3e0 "CALL p2", length=7, parser_state=0x721d7805b9f0)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:7945
|
#36 0x000063fd9e842d9d in dispatch_command (command=COM_QUERY, thd=0x69facc000d60, packet=0x69facc00b611 "CALL p2", packet_length=7, blocking=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:1903
|
#37 0x000063fd9e846603 in do_command (thd=0x69facc000d60, blocking=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_parse.cc:1437
|
#38 0x000063fd9ea44b99 in do_handle_one_connection (connect=0x63fdda67f330, put_in_cache=true)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_connect.cc:1510
|
#39 0x000063fd9ea4493e in handle_one_connection (arg=0x63fdda664430)at /test/mtest/MDEV-39587/bb-13.1-bar-MDEV-39587_dbg/sql/sql_connect.cc:1422
|
#40 0x0000721d7c89caa4 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
|
#41 0x0000721d7c929c6c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
Attachments
Issue Links
- is caused by
-
MDEV-39587 Package-wide TYPE for variable declarations
-
- In Testing
-