已关闭
[Bug]: 数据库执行alter table发生core #334
leweiyang创建于  8月13日关闭于  29 天前
leweiyang
leweiyang成员
8月13日 创建

测试类型

SQL功能

测试版本

7.0.0LTS

问题描述

执行测试用例时,执行语句 alter table nebula.wide_flashback_tbl_range_013 add add_date_0 date default sysdate; 后发生core

操作系统和硬件信息

cat /etc/system-release
openEuler release 22.03 (LTS-SP4)

测试环境

oGRAC双节点

被测功能

向分区表添加带默认值的新列

预置条件

操作步骤

前置用例:
tc_dss_user_000
问题用例:
oracle/wide_table/flashback/tc_dss_wide_flashback_range_013
执行 alter table nebula.wide_flashback_tbl_range_013 add add_date_0 date default sysdate; 语句后发生core

预期输出

实际输出

发生core
[root@openGauss172 ~]# ll /home/core/
total 33600004
-rw------- 1 ograc ograc 28353273856 Aug 13 15:33 core-dedicated-agent-1003-6-1786606370-openGauss172.892808
-rw------- 1 ograc ograc 27463254016 Aug 13 16:16 core-dedicated-agent-1003-6-1786608993-openGauss172.1094143
-rw------- 1 ograc ograc 27449692160 Aug 13 16:26 core-dedicated-agent-1003-6-1786609555-openGauss172.1442380
[root@openGauss172 ~]#

日志信息

数据库日志:
UTC+08:00 2026-08-13 16:09:21.156|CLUSTER|00000|1094746|WARN>[DTC] broadcast heap extend entity is null, uid/table_id/part/subpart:[0-384-6403-4294967295] [dtc_dc.c:654]
UTC+08:00 2026-08-13 16:16:33.907|COMMON|00052|1420761|INFO>[DB] Start to alter table WIDE_FLASHBACK_TBL_RANGE_013 [knl_interface.c:6712]
UTC+08:00 2026-08-13 16:16:33.935|COMMON|00052|1420761|INFO>[LOG] file '/data/ograc_install/ograc/log/ograc/blackbox/ogracd.blog' is added [cm_log.c:858]
UTC+08:00 2026-08-13 16:23:30.768|SERVER|00000|1442380|INFO>[LOG] file '/data/ograc_install/dbdata/local/ograc/tmp/data/log/ograc_alarm.log' is added [load_server.c:132]
UTC+08:00 2026-08-13 16:23:30.768|COMMON|00000|1442380|INFO>[LOG] file '/data/ograc_install/ograc/log/ograc/run/ogracd.rlog' is added [cm_log.c:858]
UTC+08:00 2026-08-13 16:23:30.774|SERVER|00000|1442380|INFO>REPL_AUTH is false, set REPL_SCRAM_AUTH to true will not work. If it is running in standalone mode, please ignore this item [load_kernel.c:495]
UTC+08:00 2026-08-13 16:23:30.774|SERVER|00000|1442380|INFO>[DB] database version: oGRAC Release 7.0.0-RC3 c9914d4 build 2026-07-29 07:09:37, version number: 7.0.0-RC3 [load_others.c:808]

core堆栈:
(gdb) bt
#0 0x0000ffffa03d4020 in ?? () from /usr/lib64/libc.so.6
#1 0x0000ffffa038cfbc in raise () from /usr/lib64/libc.so.6
#2 0x0000ffffa037ad70 in abort () from /usr/lib64/libc.so.6
#3 0x0000aaaac3c97f38 in proc_sign_func (sig_num=, siginfo=0xfff9458aff20, context=0xfff9458affa0)
at /home/oGRAC/pkg/src/server/srv_blackbox.c:740
#4
#5 0x0000ffffa03ec090 in ?? () from /usr/lib64/libc.so.6
#6 0x0000ffffa091d86c in memcpy_s () from /data/ograc_install/ograc/ograc/server/lib/libogcommon.so
#7 0x0000aaaac42624f4 in bmp_put_bin (ra=0xfff9458b1200, bin=0xfff9458b1250) at /home/oGRAC/pkg/src/common/cm_row.h:526
#8 0x0000aaaac42674d0 in row_put_bin (bin=0xfff9458b1250, ra=0xfff9458b1200) at /home/oGRAC/pkg/src/common/cm_row.h:597
#9 db_set_default_value (column=0xfffc05996820, cursor=0xfffad5ce0560, expr=, ra=0xfff9458b1200,
stmt=0xaaaaef2d71c0, session=0xfffad5d1b000) at /home/oGRAC/pkg/src/kernel/table/knl_table.c:8194
#10 db_set_column_update_info (cursor=0xfffad5ce0560, deleted_cols=, old_col_count=,
stmt=0xaaaaef2d71c0, session=0xfffad5d1b000) at /home/oGRAC/pkg/src/kernel/table/knl_table.c:8229
#11 db_set_column_default_entity (session=session@entry=0xfffad5d1b000, stmt=stmt@entry=0xaaaaef2d71c0,
old_col_count=old_col_count@entry=15, deleted_cols=deleted_cols@entry=0, cursor=cursor@entry=0xfffad5ce0560)
at /home/oGRAC/pkg/src/kernel/table/knl_table.c:8258
#12 0x0000aaaac4289a60 in db_try_set_column_default (cursor=0xfffad5ce0560, deleted_cols=0, old_col_count=15,
stmt=0xaaaaef2d71c0, dc=0xfff9458b1368, session=0xfffad5d1b000) at /home/oGRAC/pkg/src/kernel/table/knl_table.c:8296
#13 db_set_column_default (dc=0xfff9458b14f8, stmt=0xaaaaef2d71c0, session=0xfffad5d1b000)
at /home/oGRAC/pkg/src/kernel/table/knl_table.c:8354
#14 db_altable_add_column (session=session@entry=0xfffad5d1b000, dc=dc@entry=0xfff9458b14f8,
stmt=stmt@entry=0xaaaaef2d71c0, def=def@entry=0xfffc00642e30) at /home/oGRAC/pkg/src/kernel/table/knl_table.c:9557
#15 0x0000aaaac4325ad0 in knl_altable_with_action (trig=0xfff9458b1550, dc=0xfff9458b14f8, def=0xfffc00642e30,
stmt=0xaaaaef2d71c0, se=0xfffad5d1b000) at /home/oGRAC/pkg/src/kernel/knl_interface.c:6439
#16 knl_perform_alter_table (session=session@entry=0xfffad5d1b000, stmt=stmt@entry=0xaaaaef2d71c0,
def=def@entry=0xfffc00642e30, is_lrep_log=is_lrep_log@entry=1) at /home/oGRAC/pkg/src/kernel/knl_interface.c:6639
#17 0x0000aaaac432605c in knl_alter_table (session=0xfffad5d1b000, stmt=stmt@entry=0xaaaaef2d71c0,
def=def@entry=0xfffc00642e30, is_lrep_log=is_lrep_log@entry=1) at /home/oGRAC/pkg/src/kernel/knl_interface.c:6746
#18 0x0000aaaac3ce0188 in sql_execute_alter_table (ogsql_stmt=0xaaaaef2d71c0)
at /home/oGRAC/pkg/src/ogsql/executor/ddl_executor.c:657
#19 sql_execute_ddl (ogsql_stmt=ogsql_stmt@entry=0xaaaaef2d71c0) at /home/oGRAC/pkg/src/ogsql/executor/ddl_executor.c:1062
#20 0x0000aaaac3cd8110 in sql_execute (stmt=stmt@entry=0xaaaaef2d71c0) at /home/oGRAC/pkg/src/ogsql/ogsql_stmt.c:1319
#21 0x0000aaaac3cbc700 in sql_process_execute (session=session@entry=0xfffad5d1b000)
at /home/oGRAC/pkg/src/ogsql/ogsql_service.c:494
#22 0x0000aaaac3c3823c in srv_process_command_core (session=session@entry=0xfffad5d1b000, cmd=cmd@entry=5 '\005')
at /home/oGRAC/pkg/src/server/srv_session.c:934
#23 0x0000aaaac3c385c0 in srv_process_command (session=session@entry=0xfffad5d1b000)
at /home/oGRAC/pkg/src/server/srv_session.c:1043
#24 0x0000aaaac3c95318 in srv_process_single_session (session=session@entry=0xfffad5d1b000)
at /home/oGRAC/pkg/src/server/srv_agent.c:234
#25 0x0000aaaac3c99aec in srv_dedicated_agent_entry (thread=0xaaaaef29ea60) at /home/oGRAC/pkg/src/server/srv_emerg.c:104
#26 0x0000ffffa06a0f30 in ?? () from /data/ograc_install/ograc/ograc/server/lib/libogcommon.so
#27 0x0000ffffa03d2508 in ?? () from /usr/lib64/libc.so.6
#28 0x0000ffffa0439cdc in ?? () from /usr/lib64/libc.so.6
(gdb)

提单组织

内部开发

测试代码

对测试用例代码做了如下修改:
31行

  • ! ogsql / as sysdba -a -f temp/nebula.wide_flashback_tbl_range_013.log
  • ! su -s /bin/bash ograc -c "source ~/.bashrc && yes | ogsql / as sysdba -a -f temp/nebula.wide_flashback_tbl_range_013.log"
    33行
  • ! ogsql / as sysdba -a -f temp/nebula.wide_flashback_tbl_range_013_1.log
  • ! su -s /bin/bash ograc -c "source ~/.bashrc && yes | ogsql / as sysdba -a -f temp/nebula.wide_flashback_tbl_range_013_1.log"
likedislike
leweiyangleweiyang成员
8月13日 添加了label:bug
opengauss_bot
opengauss_bot成员
8月13日 评论:

This issue requires an assignee. Since you haven't specified one, we've assigned TestManager as the default assignee for this issue.

likedislike
opengauss_botopengauss_bot成员
8月13日 将 TestManager 设为负责人
opengauss_botopengauss_bot成员
8月13日 添加了label:sig/StorageEngine
opengauss_bot
opengauss_bot成员
8月13日 评论:

Welcome To openGauss Community

Hey @leweiyang , thanks for your contribution to the community.

Bot Usage Manual

I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands.

Contact Guide

If you have any questions, please contact the SIG: StorageEngine ,
and any of the maintainers: @CarrotGo, @chendong76, @chenxiaobin19, @congzhou2603, @dodders, @hwworkholic, @jemappellehc, @muyulinzhong, @quemingjian, @shenzheng4, @shirley_zhengx, @superlchf, @totaj, @wlff234, @wofanzheng, @ywzq1161327784 ,
and any of the committers: @CityYard, @libiao2024, @lijieac, @theothersideofsea, @wang_bowen, @weithu, @xiong_xjun, @yuanyazhi, @zhangzq131 .

likedislike
leweiyangleweiyang成员
8月13日 issue优先级由 无优先级 改变为 次要
此处折叠了12条事件消息 查看更多
muyulinzhongmuyulinzhong成员
8月18日 移除了负责人 TestManager
leweiyang
leweiyang成员
8月26日 评论:

经验证,问题已修复
image.png

likedislike
leweiyangleweiyang成员
8月26日 issue状态由 待办的 改变为 待回归
leweiyang
leweiyang成员
29 天前 评论:

总结触发语句如下,可用于手动执行测试:

alter tablespace SYSAUX AUTOEXTEND ON;
ALTER SESSION DISABLE INTERACTIVE TIMEOUT;
/I.nebula用户/
drop user if exists nebula cascade;
drop tablespace user_nebula_space including contents and datafiles cascade constraints;
create tablespace user_nebula_space datafile '+vg1/user_nebula_space' size 500M AUTOEXTEND ON;
alter tablespace user_nebula_space autopurge off;
create user nebula identified by Gauss_234 default tablespace user_nebula_space;
GRANT CREATE SESSION TO nebula;
grant dba to nebula;
grant create table to nebula;

/II.storage_user,storage用户/
drop user if exists storage_user cascade;
create user storage_user identified by Gauss_234;
grant dba to storage_user;
create table storage_user.storage_tbl_000(i int);
CREATE or replace procedure storage_user.storage_proc_000() is
b int := 0;
begin
FOR i IN 1..1000 LOOP
insert into storage_user.storage_tbl_000 values(i);
end loop;
end;
/
GRANT INHERIT PRIVILEGES ON USER sys TO storage_user;
call storage_user.storage_proc_000();
commit;

drop user if exists storage cascade;
create user storage identified by Gauss_234;
grant dba to storage;

/III.oracle用户/
drop user if exists oracle cascade;
create user oracle identified by Gauss_234 ;
GRANT CREATE SESSION TO oracle ;
grant dba to oracle;
grant create table to oracle;

alter system set recyclebin=true;

alter tablespace USERS autopurge off;
purge recyclebin;

create table nebula.wide_flashback_tbl_range_013(c_id int)partition by range(c_id) (partition PART_1 values less than
(10),partition PART_2 values less than (20),partition PART_3 values less than (30),partition PART_4 values less than
(maxvalue));

create table nebula.wide_flashback_tbl_range_013_1(c_id int)partition by range(c_id) (partition PART_1 values less
than (10),partition PART_2 values less than (20),partition PART_3 values less than (30),partition PART_4 values less
than (maxvalue));

alter table nebula.wide_flashback_tbl_range_013_1 add constraint flashback_constraint_055_1 unique(c_id);

alter table nebula.wide_flashback_tbl_range_013 add constraint flashback_constraint_055_2 foreign key (c_id)
references nebula.wide_flashback_tbl_range_013_1(c_id);

insert into nebula.wide_flashback_tbl_range_013_1 values(1);
insert into nebula.wide_flashback_tbl_range_013_1 values(11);
insert into nebula.wide_flashback_tbl_range_013_1 values(21);
insert into nebula.wide_flashback_tbl_range_013_1 values(31);
insert into nebula.wide_flashback_tbl_range_013 values(1);
insert into nebula.wide_flashback_tbl_range_013 values(11);
insert into nebula.wide_flashback_tbl_range_013 values(21);
insert into nebula.wide_flashback_tbl_range_013 values(31);
commit;

alter table nebula.wide_flashback_tbl_range_013 add add_date_0 date default sysdate;

likedislike
liuzhen001
liuzhen001成员
29 天前 评论:

回归版本:7.0.0LTS
回归结论:回归通过
回归过程:
image.png
image.png

likedislike
liuzhen001liuzhen001成员
29 天前 issue状态由 待回归 改变为 已验收
liuzhen001liuzhen001成员
29 天前 关闭了 issue