Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
13.1
-
Not for Release Notes
Description
CREATE DATABASE rdb; |
CREATE TABLE rdb.t (c1 INT, c2 INT, c3 INT); |
|
|
--echo #
|
--echo # 1) Column DENY to a ROLE (crashes debug build on this statement)
|
--echo #
|
CREATE ROLE rA; |
DENY SELECT (c2) ON rdb.t TO rA; |
|
|
--echo # Cleanup
|
DROP ROLE rA; |
DROP USER u1@localhost; |
DROP DATABASE rdb; |
Leads to
|
MDEV-14443 CS 13.1.0 8bd0360b2167588c001350903bbe344c6c0f1c5a (Debug, Clang 18.1.3-11) Build 12/06/2026 |
mariadbd: /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:8319: int update_role_columns(GRANT_TABLE *, GRANT_TABLE **, GRANT_TABLE **): Assertion `rights.allow_bits() == merged->cols' failed.
|
|
MDEV-14443 CS 13.1.0 8bd0360b2167588c001350903bbe344c6c0f1c5a (Debug, Clang 18.1.3-11) Build 12/06/2026 |
Core was generated by `/test/mtest/MDEV-14443/MD120626-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 1713600)]
|
(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 0x00007b510804527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
|
#4 0x00007b51080288ff in __GI_abort () at ./stdlib/abort.c:79
|
#5 0x00007b510802881b in __assert_fail_base (fmt=0x7b51081d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x594a4bbbe30f "rights.allow_bits() == merged->cols", file=file@entry=0x594a4bbbbc9d "/test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc", line=line@entry=8319, function=function@entry=0x594a4bbbe333 "int update_role_columns(GRANT_TABLE *, GRANT_TABLE **, GRANT_TABLE **)") at ./assert/assert.c:96
|
#6 0x00007b510803b517 in __assert_fail (assertion=0x594a4bbbe30f "rights.allow_bits() == merged->cols", file=0x594a4bbbbc9d "/test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc", line=8319, function=0x594a4bbbe333 "int update_role_columns(GRANT_TABLE *, GRANT_TABLE **, GRANT_TABLE **)") at ./assert/assert.c:105
|
#7 0x0000594a4a984f0f in update_role_columns (merged=0x594a602d09a0, cur=0x7b4d1c29af68, last=0x7b4d1c29af68)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:8319
|
#8 0x0000594a4a984afa in update_role_table_columns (merged=0x594a602d09a0, first=0x7b4d1c29af60, last=0x7b4d1c29af68, privs=@0x7b5106781868: {m_allow_bits = NO_ACL, m_deny_bits = NO_ACL, m_deny_subtree = SELECT_ACL}, cols=SELECT_ACL, role=0x594a601d2ef0 "rA")at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:8382
|
#9 0x0000594a4a983e95 in merge_role_table_and_column_privileges (grantee=0x594a601d2e20, db=0x7b4d1c017120 "rdb", tname=0x7b4d1c017130 "t", rhash=0x7b5106781948)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:8447
|
#10 0x0000594a4a98242e in merge_role_privileges (grantee=0x594a601d2e20, context=0x7b5106781a20)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:8606
|
#11 0x0000594a4a9820cb in merge_one_role_privileges (grantee=0x594a601d2e20, what={what = PRIVS_TO_MERGE::TABLE_COLUMN, db = 0x7b4d1c017120 "rdb", name = 0x7b4d1c017130 "t"})at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:8630
|
#12 0x0000594a4a967beb in propagate_role_grants (role=0x594a601d2e20, what=PRIVS_TO_MERGE::TABLE_COLUMN, db=0x7b4d1c017120 "rdb", name=0x7b4d1c017130 "t")at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:7816
|
#13 0x0000594a4a964b39 in mysql_table_grant (thd=0x7b4d1c000d60, table_list=0x7b4d1c0171f0, user_list=@0x7b4d1c006268: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7b4d1c0171d0, last = 0x7b4d1c0171d0, elements = 1}, <No data fields>}, columns=@0x7b4d1c017970: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7b4d1c017110, last = 0x7b4d1c017110, elements = 1}, <No data fields>}, rights=NO_ACL, revoke_grant=false, is_deny=true)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:8921
|
#14 0x0000594a4a978095 in Sql_cmd_grant_table::execute_exact_table (this=0x7b4d1c017950, thd=0x7b4d1c000d60, table=0x7b4d1c0171f0)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:14339
|
#15 0x0000594a4a97875c in Sql_cmd_grant_table::execute (this=0x7b4d1c017950, thd=0x7b4d1c000d60)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_acl.cc:14421
|
#16 0x0000594a4aa81d67 in mysql_execute_command (thd=0x7b4d1c000d60, is_called_from_prepared_stmt=false)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_parse.cc:5905
|
#17 0x0000594a4aa70ec4 in mysql_parse (thd=0x7b4d1c000d60, rawbuf=0x7b4d1c016f90 "DENY SELECT (c2) ON rdb.t TO rA", length=31, parser_state=0x7b51067839c0)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_parse.cc:7959
|
#18 0x0000594a4aa6e1ed in dispatch_command (command=COM_QUERY, thd=0x7b4d1c000d60, packet=0x7b4d1c1cb721 "DENY SELECT (c2) ON rdb.t TO rA", packet_length=31, blocking=true)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_parse.cc:1903
|
#19 0x0000594a4aa71a73 in do_command (thd=0x7b4d1c000d60, blocking=true)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_parse.cc:1437
|
#20 0x0000594a4ac70489 in do_handle_one_connection (connect=0x594a60250bc0, put_in_cache=true)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_connect.cc:1503
|
#21 0x0000594a4ac7022e in handle_one_connection (arg=0x594a601cddc0)at /test/mtest/MDEV-14443/MDEV-14443_dbg/sql/sql_connect.cc:1415
|
#22 0x00007b510809caa4 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
|
#23 0x00007b5108129c6c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
Attachments
Issue Links
- is caused by
-
MDEV-14443 DENY clause for access control a.k.a. "negative grants"
-
- In Testing
-