【 使用环境 】测试环境
【 OB or 其他组件 】oblogproxy
【 使用版本 】
OceanBase 产品名称及详细版本 : OceanBase 4.2.1.7 (r107030032024062709-7d62d41478c39e4512cd694d1019a69dcc7efb63) (Built Jun 27 2024 10:10:49)
租户模式 : Oracle 模式
oblogproxy 版本: oblogproxy-2.3.6-20240205191717.tar.gz
【问题描述】
1 正常情况,小批量的事务交易,client 端调用 logProxyClient.stop() 后,oblogreader 可以停下来。
2 不正常情况,大批量交易过程中,client 端调用 logProxyClient.stop() 后卡主,oblogreader 停不了一直运行。
【复现路径】
可以模拟重现: 100列字段50万大事务
重现步骤,
1 新建一个表
CREATE TABLE ZYB_TEST_100COL (
ID NUMBER PRIMARY KEY,
COL001 VARCHAR2(255) ,
COL002 VARCHAR2(255) ,
COL003 VARCHAR2(255) ,
COL004 VARCHAR2(255) ,
COL005 VARCHAR2(255) ,
COL006 VARCHAR2(255) ,
COL007 VARCHAR2(255) ,
COL008 VARCHAR2(255) ,
COL009 VARCHAR2(255) ,
COL010 VARCHAR2(255) ,
COL011 VARCHAR2(255) ,
COL012 VARCHAR2(255) ,
COL013 VARCHAR2(255) ,
COL014 VARCHAR2(255) ,
COL015 VARCHAR2(255) ,
COL016 VARCHAR2(255) ,
COL017 VARCHAR2(255) ,
COL018 VARCHAR2(255) ,
COL019 VARCHAR2(255) ,
COL020 VARCHAR2(255) ,
COL021 VARCHAR2(255) ,
COL022 VARCHAR2(255) ,
COL023 VARCHAR2(255) ,
COL024 VARCHAR2(255) ,
COL025 VARCHAR2(255) ,
COL026 VARCHAR2(255) ,
COL027 VARCHAR2(255) ,
COL028 VARCHAR2(255) ,
COL029 VARCHAR2(255) ,
COL030 VARCHAR2(255) ,
COL031 VARCHAR2(255) ,
COL032 VARCHAR2(255) ,
COL033 VARCHAR2(255) ,
COL034 VARCHAR2(255) ,
COL035 VARCHAR2(255) ,
COL036 VARCHAR2(255) ,
COL037 VARCHAR2(255) ,
COL038 VARCHAR2(255) ,
COL039 VARCHAR2(255) ,
COL040 VARCHAR2(255) ,
COL041 VARCHAR2(255) ,
COL042 VARCHAR2(255) ,
COL043 VARCHAR2(255) ,
COL044 VARCHAR2(255) ,
COL045 VARCHAR2(255) ,
COL046 VARCHAR2(255) ,
COL047 VARCHAR2(255) ,
COL048 VARCHAR2(255) ,
COL049 VARCHAR2(255) ,
COL050 VARCHAR2(255) ,
COL051 VARCHAR2(255) ,
COL052 VARCHAR2(255) ,
COL053 VARCHAR2(255) ,
COL054 VARCHAR2(255) ,
COL055 VARCHAR2(255) ,
COL056 VARCHAR2(255) ,
COL057 VARCHAR2(255) ,
COL058 VARCHAR2(255) ,
COL059 VARCHAR2(255) ,
COL060 VARCHAR2(255) ,
COL061 VARCHAR2(255) ,
COL062 VARCHAR2(255) ,
COL063 VARCHAR2(255) ,
COL064 VARCHAR2(255) ,
COL065 VARCHAR2(255) ,
COL066 VARCHAR2(255) ,
COL067 VARCHAR2(255) ,
COL068 VARCHAR2(255) ,
COL069 VARCHAR2(255) ,
COL070 VARCHAR2(255) ,
COL071 VARCHAR2(255) ,
COL072 VARCHAR2(255) ,
COL073 VARCHAR2(255) ,
COL074 VARCHAR2(255) ,
COL075 VARCHAR2(255) ,
COL076 VARCHAR2(255) ,
COL077 VARCHAR2(255) ,
COL078 VARCHAR2(255) ,
COL079 VARCHAR2(255) ,
COL080 VARCHAR2(255) ,
COL081 VARCHAR2(255) ,
COL082 VARCHAR2(255) ,
COL083 VARCHAR2(255) ,
COL084 VARCHAR2(255) ,
COL085 VARCHAR2(255) ,
COL086 VARCHAR2(255) ,
COL087 VARCHAR2(255) ,
COL088 VARCHAR2(255) ,
COL089 VARCHAR2(255) ,
COL090 VARCHAR2(255) ,
COL091 VARCHAR2(255) ,
COL092 VARCHAR2(255) ,
COL093 VARCHAR2(255) ,
COL094 VARCHAR2(255) ,
COL095 VARCHAR2(255) ,
COL096 VARCHAR2(255) ,
COL097 VARCHAR2(255) ,
COL098 VARCHAR2(255) ,
COL099 VARCHAR2(255) ,
COL100 VARCHAR2(255)
);
2模拟大事务批量操作,50w条记录插入或50w条记录更新
begin
for i in 0…500000
loop
insert into ZYB_TEST_100COL
values(i,
‘a1’,‘a2’,‘a3’,‘a4’,‘a5’,‘a6’,‘a7’,‘a8’,‘a9’,‘a10’,‘a11’,‘a12’,‘a13’,‘a14’,‘a15’,‘a16’,‘a17’,‘a18’,‘a19’,‘a20’,‘a21’,‘a22’,‘a23’,‘a24’,‘a25’,‘a26’,‘a27’,‘a28’,‘a29’,‘a30’,‘a31’,‘a32’,‘a33’,‘a34’,‘a35’,‘a36’,‘a37’,‘a38’,‘a39’,‘a40’,‘a41’,‘a42’,‘a43’,‘a44’,‘a45’,‘a46’,‘a47’,‘a48’,‘a49’,‘a50’,‘a51’,‘a52’,‘a53’,‘a54’,‘a55’,‘a56’,‘a57’,‘a58’,‘a59’,‘a60’,‘a61’,‘a62’,‘a63’,‘a64’,‘a65’,‘a66’,‘a67’,‘a68’,‘a69’,‘a70’,‘a71’,‘a72’,‘a73’,‘a74’,‘a75’,‘a76’,‘a77’,‘a78’,‘a79’,‘a80’,‘a81’,‘a82’,‘a83’,‘a84’,‘a85’,‘a86’,‘a87’,‘a88’,‘a89’,‘a90’,‘a91’,‘a92’,‘a93’,‘a94’,‘a95’,‘a96’,‘a97’,‘a98’,‘a99’,‘a99’);
end loop;
commit;
end;
UPDATE ZYB_TEST_100COL SET col001 = ‘u0402_50w_1’ WHERE rownum<500001;
3 等 client 处理过程中,触发停止
client 端调用 logProxyClient.stop() 卡主,
4 检查 oblogproxy,发现 oblogreader 停止不下来,日志提示 reader transfer queue full,oblogproxy 日志也没有client 停止日志
【附件及日志】