Skip to content

[Bug] BE 1.2.0 升级失败,Jdbc table and ODBC table并发查询存在问题 #14991

Open
@Wilson-BT

Description

@Wilson-BT

Search before asking

  • I had searched in the issues and found no similar issues.

Version

1.2.0

What's Wrong?

当我们测试升级1.1.4 到 1.2.0版本的时候,当有并发查询 JDBC 或者ODBC 外表(微复杂Sql,外表外层使用视图包裹,视图与视图进行关联)的时候,BE 将会直接挂掉(Sql单独运行的时候正常执行)。导致BE 升级失败,被迫回滚版本。
并且经过测试,我们发现,此Sql,查询ODBC表 会挂掉所有的BE,但是查询JDBC表只会挂掉其中一台BE。
be各节点的be.out 和 core文件解析之后的日志 已经整合到下面的文件中,已经添加了注释

When we test and upgrade version 1.1.4 to 1.2.0, when there is concurrent query of JDBC or ODBC appearance (micro-complex Sql, the outer layer of the appearance is wrapped with a view, and the view is associated with the view), the BE will hang directly (Sql executes normally when running alone). As a result, the BE upgrade failed and the version was forced to roll back.
And after testing, we found that for this Sql, querying the ODBC table will hang up all BEs, but querying the JDBC table will only hang up one of the BEs (it should be BE by visual inspection).
The logs after parsing the be.out and core files of each be node have been integrated into the following files, and comments have been added

  • BE 各节点报错日志 and core 文件解析之后的报错信息(ODBC 表的报错日志)

BE each node error log and error information after core file parsing (ODBC)
BE 节点日志.txt

  • BE 各节点报错日志 and core 文件解析之后的报错信息(JDBC 表的报错日志)

BE each node error log and error information after core file parsing (JDBC)

6321670903227_ pic

  • JDBC 执行的Sql 语句,ODBC 语句一致

Sql statement executed by JDBC
JDBC SQL

SELECT a.organ_new_no,b.*,c.*
 FROM (
        SELECT
            `a`.`org_new_no` AS `organ_new_no`,
            sum(`a`.`s_sal_amt`) AS `shoe_sal_amt`
        FROM
            `default_cluster:dasuan_analysis_data`.`dws_day_org_sql_kpi_retail_jdbc` a
        LEFT OUTER JOIN `default_cluster:dasuan_analysis_data`.`dim_main_brand_org_info` b ON
            `a`.`org_new_no` = `b`.`organ_new_no`
        WHERE organ_new_no = 'NKBJAT'
        AND period_sdate = '20221213'
    	GROUP BY a.org_new_no
 ) a
 FULL JOIN (
    SELECT `org_lno` AS `organ_new_no`, SUM(biz_inv_qty) AS inv_qty, SUM(biz_inv_prm_amt) AS inv_prm_amt
    FROM
        `default_cluster:dasuan_analysis_data`.`dws_day_org_inv_retail_jdbc` a
    LEFT OUTER JOIN `default_cluster:dasuan_analysis_data`.`dim_main_brand_org_info` b ON
        `a`.`org_lno` = `b`.`organ_new_no`
    WHERE 1 = 1
    AND org_lno = 'NKBJAT'     
    GROUP by `org_lno`
 ) b
 ON a.organ_new_no = b.organ_new_no
 LEFT JOIN (
            SELECT
                `org_lno` AS `organ_new_no`,
                 sum(sal_amt) AS `sal_amt`
            FROM
                `default_cluster:dasuan_analysis_data`.`dws_day_org_pro_size_ord_sy_retail_jdbc`
            WHERE period_sdate = '20221213'
            AND org_lno = 'NKBJAT'
            GROUP BY
                `org_lno`
    ) c
    ON a.organ_new_no = c.organ_new_no

ODBC SQL

SELECT a.organ_new_no,b.*,c.*
 FROM (
        SELECT
            `a`.`org_new_no` AS `organ_new_no`,
            sum(`a`.`s_sal_amt`) AS `shoe_sal_amt`
        FROM
            `default_cluster:dasuan_analysis_data`.`dws_day_org_sql_kpi_retail` a
        LEFT OUTER JOIN `default_cluster:dasuan_analysis_data`.`dim_main_brand_org_info` b ON
            `a`.`org_new_no` = `b`.`organ_new_no`
        WHERE organ_new_no = 'NKBJAT'
        AND period_sdate = '20221213'
    	GROUP BY a.org_new_no
 ) a
 FULL JOIN (
    SELECT `org_lno` AS `organ_new_no`, SUM(biz_inv_qty) AS inv_qty, SUM(biz_inv_prm_amt) AS inv_prm_amt
    FROM
        `default_cluster:dasuan_analysis_data`.`dws_day_org_inv_retail` a
    LEFT OUTER JOIN `default_cluster:dasuan_analysis_data`.`dim_main_brand_org_info` b ON
        `a`.`org_lno` = `b`.`organ_new_no`
    WHERE 1 = 1
    AND org_lno = 'NKBJAT'     
    GROUP by `org_lno`
 ) b
 ON a.organ_new_no = b.organ_new_no
 LEFT JOIN (
            SELECT
                `org_lno` AS `organ_new_no`,
                 sum(sal_amt) AS `sal_amt`
            FROM
                `default_cluster:dasuan_analysis_data`.`dws_day_org_pro_size_ord_sy_retail`
            WHERE period_sdate = '20221213'
            AND org_lno = 'NKBJAT'
            GROUP BY
                `org_lno`
    ) c
    ON a.organ_new_no = c.organ_new_no
  • 表结构DDL,(ODBC 则在建表时指定 ODBC,JDBC 表添加了jdbc 后缀作为区分)

Table Structure DDL
DDL.txt

  • oracle-jdbc 版本

ojdbc6-11.2.0.3.jar

What You Expected?

希望在1.2.1能够解决这个bug,到时能够及时升级到1.2.1。

I hope this bug can be solved in 1.2.1, and I can upgrade to 1.2.1 in time.

How to Reproduce?

测试环境,内存资源充足,ulimit -n 已经设置为了65536,资源基本无限制

The test environment has sufficient memory resources, ulimit -n has been set to 65536, and the resources are basically unlimited

image

Anything Else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions