✅ doris1.2.5, be节点批量crash

doris版本: 1.2.5

环境:生产环境

报错: There is no supertype for types Array(Nullable(UInt8)), Array(Nullable(DateV2))
这个报错会导致be节点批量crash,请问,有啥排查方向吗~?为啥会在doris中出现nullable类型~?

be节点日志:

这个应该是断言错误,10点多有做过什么操作吗

看起来是这个sql导致的, sql感觉也没啥特别的


    with TAB2 as (
    select
        t0.d as d_tag,
        t0.customer_id,
        a1.company_id,
        c1.near_30_day_list,
        a1.job_d,
        c2.near_7_day_list
    from(select distinct(customer_id) as customer_id, 
                p_customer_cid as company_id,
                d
         from dim.dim_esales_customer_da
         where d >= '2023-07-30'
           and cooperation_status = 1
           and customer_status = 1
        )t0
        left join (select
                       company_id,
                       collect_list(d) as job_d  
                   from (
                           
                            select
                                   d,
                                   current_company_id as company_id
                            from dws.dw_jobs_recruiter_wide_7d
                            where d between '2023-07-30' and date_sub(current_date(), interval 1 day )
                              and is_dau = 1
                              and b_identity = 'HR'
                            union all

                            select
                                   d,
                                   talent_bank_company_id as company_id
                            from dws.dw_jobs_recruiter_wide_7d
                            where d between '2023-07-30' and date_sub(current_date(), interval 1 day )
                              and is_dau = 1
                              and b_identity = 'HR'

                            ) tab6
                   where company_id > 0
                   group by company_id
                   ) a1
            on t0.company_id = a1.company_id
        left join (select
                       COLLECT_LIST(d) as near_30_day_list,
                       dt
                   from dim.dim_month_da
                   where dt >= '2023-07-30' and dt <= current_date()
                   group by dt
                   ) c1
                on t0.d = c1.dt
        left join (select COLLECT_LIST(d) as near_7_day_list,
                          dt
                   from dim.dim_week_da
                   where dt >= '2023-07-30'
                     and dt <= current_date()
                   group by dt
                   ) c2
                  on t0.d = c2.dt
    )
    select
        d_tag,
        num,
        job_wau/num as '7日活跃占比',
        job_mau/num as '30日活跃占比'

from(
        select
            d_tag,
            count(distinct customer_id) as num,
            count(distinct if(array_size(array_intersect(near_7_day_list,if(job_d is null,array(),job_d))) != 0,customer_id,null)) as job_wau,
            count(distinct if(array_size(array_intersect(near_30_day_list,if(job_d is null,array(),job_d))) != 0,customer_id,null)) as job_mau

        from TAB2
        group by d_tag
    )tab8
    ;

你看下这个SQL单独跑会不会导致be crash

嗯嗯,会导致crash, 又测试了下细节sql, 有这个 语句就会crash if(job_d is null, array(),job_d)

sql 改写成这样就不报错: if(job_d is null, array(‘1970-01-01’),job_d)

可以通过这个sql复现:

    select if(job_d is null, array(), job_d) as test
    from (
        select array('1970-01-01', '1970-01-01') as job_d
    ) t

OK,你先升级到1.2.6然后验证下这个SQL还会导致不

嗯嗯,刚升级完,验证了,1.2.6也会出现这个问题。

好的,感谢,我在2.0-beta上验证一下

出现crash的这个表结构方便给一下吗

复现的那个sql, 没有用到具体的表,就是纯sql

刚看到,不好意思

2.0-beta也会

没事的~没事的~

嗷嗷~

更正一下,2.0-beta be不会crash,SQL会报错。

嗷嗷,了解了,thx~