创建表报超时,调整超时时间无效

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】3.1.4 社区版
【问题描述】创建表报超时,调整超时时间无效
【复现路径】

  1. 创建表组 create tablegroup if not exists tpch_tg_lineitem_order_group binding true partition by key 1 partitions 48;

  2. 创建表create table lineitem (
    l_orderkey BIGINT NOT NULL,
    l_partkey BIGINT NOT NULL,
    l_suppkey INTEGER NOT NULL,
    l_linenumber INTEGER NOT NULL,
    l_quantity DECIMAL(15,2) NOT NULL,
    l_extendedprice DECIMAL(15,2) NOT NULL,
    l_discount DECIMAL(15,2) NOT NULL,
    l_tax DECIMAL(15,2) NOT NULL,
    l_returnflag char(1) DEFAULT NULL,
    l_linestatus char(1) DEFAULT NULL,
    l_shipdate date NOT NULL,
    l_commitdate date DEFAULT NULL,
    l_receiptdate date DEFAULT NULL,
    l_shipinstruct char(25) DEFAULT NULL,
    l_shipmode char(10) DEFAULT NULL,
    l_comment varchar(44) DEFAULT NULL,
    primary key(l_orderkey, l_linenumber))
    tablegroup = tpch_tg_lineitem_order_group
    partition by key (l_orderkey) partitions 48;
    运行24秒后报 ERROR 4012 (HY000): Timeout。

  3. 调整超时 SET global ob_query_timeout=300000000;
    SET global long_query_time=300;

  4. 再次运行步骤2的sql,还是报相同的错误。

【问题现象及影响】
无法建表,无法进行TPC-H测试,后续其他验证也没法进行。

【附件】


SET global ob_query_timeout=300000000;
SET global long_query_time=300;

-------------------------Global对当前连接不生效。去掉global,就是默认的session级可以立即生效。
可以试试。如果还不行,就select last_trace_id() 查到traceid。observer上找日志看看

昨天设置的,今天退出再进直接查看参数设置都是修改后的值。执行建表操作还是24秒超时。
日志里看就是执行慢,最后超时了。
partitions 设置为2就可以执行成功。
你们本地测试没超时吗?

本地没有复现,
1、设置参数
alter system set enable_rich_error_msg=‘true’;

2、然后创建表让超时,根据提示提示的 traceid (第3个字段)类似(YF5A2AC1EC731-0005F51E591A6EE9),在对应的节点上过滤 observer.log (根据实际实际对应的日志文件)。

3、提供rs节点上包含第2步中traceid的rootservice.log 过滤后的附件。

删除临时附件

[2023-03-15 14:40:51.857272] WARN [RPC.OBRPC] rpc_call (ob_rpc_proxy.ipp:383) [2945090][2030][YB420A100462-0005F6D7A79C1CCF] [lt=6] [dc=0] execute rpc f ail(ret=-4012, dst=“10.16.4.98:2882”)

麻烦把10.16.4.98上过滤后的日志附件也提供一下(待过滤的原始日志附件以实际的为准)。
grep “YB420A100462-0005F6D7A79C1CCF” observer.log.2023031514*

这两个日志都是98上的,我只安装了一个节点

帮忙确认以下信息:
1、show variables like ‘version_comment’;
2、在OB的etc目录下 strings observer.config.bin

OceanBase 3.1.4 (r103000102023020719-16544a206f00dd3ceb4ca3011a625fbb24568154) (Built Feb 7 2023 19:32:02)

0、observer主机上执行一下
uname -a && cat /etc/*-release

1、调整一下参数,避免日志限流日志附件中记录的不全:
alter system set syslog_io_bandwidth_limit=‘1000MB’;

2、drop tablegroup tpch_tg_lineitem_order_group;

3、把这个创建表组的 binding true去掉一下试试,重新执行,然后创建表。
create tablegroup if not exists tpch_tg_lineitem_order_group partition by key 1 partitions 48;

4、如果还是执行超时,麻烦将从开始执行创建表(超时)到最新的日志附件打包提供一下。
建议:执行创建表前 select now(); 提供的日志从这个时间到最新的日志。

  1. uname … 结果
    Linux zzz-dev-98 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    CentOS Linux release 7.9.2009 (Core)
    NAME=“CentOS Linux”
    VERSION=“7 (Core)”
    ID=“centos”
    ID_LIKE=“rhel fedora”
    VERSION_ID=“7”
    PRETTY_NAME=“CentOS Linux 7 (Core)”
    ANSI_COLOR=“0;31”
    CPE_NAME=“cpe:/o:centos:centos:7”
    HOME_URL=“https://www.centos.org/
    BUG_REPORT_URL=“https://bugs.centos.org/

CENTOS_MANTISBT_PROJECT=“CentOS-7”
CENTOS_MANTISBT_PROJECT_VERSION=“7”
REDHAT_SUPPORT_PRODUCT=“centos”
REDHAT_SUPPORT_PRODUCT_VERSION=“7”

CentOS Linux release 7.9.2009 (Core)
CentOS Linux release 7.9.2009 (Core)

  1. 去掉 binding true 可以创建表成功,耗时1.9秒。

  2. 保留 binding true 还是超时失败。

  1. 我安装的是3.1.4,也不支持binding true?

  2. 这些DDL语句是从ocp安装过程中产生的临时文件复制的,麻烦修改下ocp的安装代码, ocp版本是 ocp-4.0.0-ce-bp1-x86_64。

1、本地在3.1.4版本上测试上支持binding true的。

2、这些DDL语句是从ocp安装过程中产生的临时文件复制的,麻烦修改下ocp的安装代码, ocp版本是 ocp-4.0.0-ce-bp1-x86_64

复制的什么,麻烦具体描述或者截图说明一下需要修复什么问题。

  1. 复制这个sql: create tablegroup if not exists tpch_tg_lineitem_order_group binding true partition by key 1 partitions 48;
    希望生成的sql把binding true去掉。

  2. 设置超时时间无效的问题也帮忙看下。

调整一下参数,避免日志限流日志附件中记录的不全:
alter system set max_syslog_file_count=100; (可以根据磁盘大小设置,尽量多保留一些,单个日志文件256M)
alter system set enable_syslog_recycle=‘true’;
alter system set syslog_io_bandwidth_limit=‘1000MB’;

提供一下:
1、机器配置 :cpu/memory
2、OB的配置 :OB的etc目录下 strings observer.config.bin
3、在另外一个窗口执行 iostat -dxm 1 1000 ,然后新建表等超时,提供期间的磁盘io截图
4、执行创建表前先确认时间,date 或者select now()
5、如果超时,请把包含第4步的时间及其后续的完整日志打包提供一下。
6、提供一下超时对应的traceid。