Pain Sun created IMPALA-11061:
---------------------------------
Summary: Multi-aggregation functions cause a crash
Key: IMPALA-11061
URL: https://issues.apache.org/jira/browse/IMPALA-11061
Project: IMPALA
Issue Type: Bug
Components: Backend
Affects Versions: Impala 3.4.0
Environment: centos
Reporter: Pain Sun
A query with multi-aggregation functions cause a crash.I update the version to
3.4.0 and update the code as IMPALA-9809 and compiled.But I still cause the bug.
Log:
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000000152e2d8, pid=6301, tid=0x00007f5c425a1700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_202-b08) (build
1.8.0_202-b08)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.202-b08 mixed mode linux-amd64
compressed oops)
# Problematic frame:
# C [impalad+0x112e2d8]
impala::AggFnEvaluator::SerializeOrFinalize(impala::Tuple*,
impala::SlotDescriptor const&, impala::Tuple*, void*)+0x48
#
# Core dump written. Default location: /var/lib/impala/core or core.6301
#
# An error report file with more information is saved as:
# /var/lib/impala/hs_err_pid6301.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
Sql:
with resultSrc as (
select
if(
resultnotMob.mobile is not null,
resultnotMob.mobile,
platMob.mobile
) as mobile,
resultnotMob.sellernick,
resultnotMob.buyernick,
resultnotMob.shopType,
resultnotMob.clientid
from
(
select
selleridtab1.sellernick,
crow.buyernick,
crow.shopType,
crow.clientid,
crow.mobile
from
(
select
sellernick,
buyernick
from
member.sibn
where
mainsellernick = 'a'
and buyernick != ''
and buyernick is not null
and sellernick != ''
and sellernick is not null
and sellernick in('a')
) as selleridtab1
right join [shuffle] (
SELECT
mergeClientIdt1.clientid,
mergeClientIdt1.mobile,
if(
memberRelationt2.buyernick is not null,
memberRelationt2.buyernick,
mergeClientIdt1.buyernick
) as buyerNick,
if(
memberRelationt2.shoptype is not null,
memberRelationt2.shoptype,
mergeClientIdt1.shoptype
) as shopType
from
(
SELECT
result.buyernick,
result.shoptype,
result.mobile,
IF(
memberRelationt1.clientid is not NULL,
memberRelationt1.clientid,
concat(
cast(result.shoptype AS string),
result.buyernick
)
) AS clientid
FROM
(
select
buyerNick,
cast(shopType AS string) AS shopType,
mobile
FROM
(
WITH Tradewithgroup as (
select
buyerNick,
cast(shoptype AS string) AS
shopType,
if(shopType in ('2', '3',
'4', '34'), null, mobile) as mobile
from
(
select
cast(shopType AS
string) AS shopType,
buyerNick,
max(mobile) as
mobile
from
(
select
case
when
sellerNick in('') then '2'
end as
shoptype,
buyerNick,
sellerNick,
tid,
max(m1) as
m1,
max(receivermobile) as mobile,
max(day) as
day,
max(trade_payment) as trade_payment,
sum(if(refund_fee is null, 0, refund_fee)) as refund_fee,
sum(num) as
num,
max(
trade_payment - if(refund_fee is null, 0, refund_fee)
) as
maxtradepaymentrefund,
count(if(refund_fee is not null, oid, null)) as refund_count,
min(created) as min_created,
max(created) as max_created,
min(paytime) as min_paytime,
max(paytime) as max_paytime
from
trade.tci
where
mainsellernick = ''
and
buyerNick != ''
and
sellerNick in('')
group by
sellerNick,
buyerNick,
tid
) as allresult
group by
buyerNick,
shoptype
having
((sum(trade_payment) = 687.15))
and (
((sum(trade_payment) - sum(refund_fee)) = 687.15)
)
and
((count(distinct(day)) = 3))
and
((count(distinct(tid)) = 3))
and ((sum(num) = 9))
and
((sum(refund_fee) = 0))
and
((sum(refund_count) = 0))
and (
(
min(min_created) >= '2021-11-02 00:00:00'
and
min(min_created) <= '2021-11-02 23:00:00'
)
)
and (
(
(sum(trade_payment) / count(distinct(day))) >= 229.05
)
)
) as tradeGroup
),
RFMwithgroup as (
select
cast(shoptype AS string) AS
shopType,
buyerNick
from
(
select
platmember00.buyerNick,
platmember00.shopType
from
(
select
cast(shopType AS string) AS shopType,
buyerNick
from
(
select
cast(shopType AS string) AS shopType,
nick AS buyerNick
FROM
member.cmdn
WHERE
isdelete = 0
AND
mainsellernick = ''
and
channelid in (
SELECT
channelid
from
member.cmdi
where
(
MainSellerNick = ''
and isdelete = 0
and (
(LastPayment >= 172.51)
and (YearTradeCount >= 2)
and (YearTradeAmount = 413.55)
and (TotalPayment >= 413.55)
and (TotalPayCount = 2)
and (FirstPayment = 241.04)
and (
FirstPaytime >= '2021-11-02 00:00:00'
and FirstPaytime <= '2021-11-02 23:59:59'
)
and (
LastPaytime >= '2021-12-12 00:00:00'
and LastPaytime <= '2021-12-12 23:59:59'
)
)
)
)
) as channel
) as platmember00
) as RFMGroup
),
Basewithgroup as (
select
cast(shoptype AS string) AS
shopType,
buyerNick
from
(
SELECT
platmemberHXAll.shopType,
platmemberHXAll.buyerNick
FROM
(
SELECT
cast(shopType AS string) AS shopType,
buyerNick
FROM
(
SELECT
IF (
platmemberHXAndClientID.clientid IS NOT NULL,
integralThirdNickRelationTable2.shopType,
platmemberHXAndClientID.shopType
)
AS shopType,
IF (
platmemberHXAndClientID.clientid IS NOT NULL,
integralThirdNickRelationTable2.buyerNick,
platmemberHXAndClientID.buyerNick
)
AS buyerNick,
platmemberHXAndClientID.clientid
FROM
(
SELECT
platmemberHX.shopType,
platmemberHX.buyerNick,
integralThirdNickRelationTable.clientid
FROM
(
select
cast(shopType AS string) AS shopType,
thirdnick as buyerNick
from
member.cmdhi
where
mainshopnick = ''
and isdelete = 0
and thirdnick != ''
and thirdnick is not null
and shopType != 56
) as platmemberHX
LEFT JOIN [shuffle] (
SELECT
clientid,
cast(shopType AS string) AS shopType,
thirdnick AS buyerNick
FROM
member.itnri
WHERE
brandid IN(1)
and thirdnick != ''
and thirdnick is not null
AND isdelete = 0
) as integralThirdNickRelationTable ON
integralThirdNickRelationTable.shopType = platmemberHX.shopType
AND integralThirdNickRelationTable.buyerNick = platmemberHX.buyerNick
)
AS platmemberHXAndClientID
LEFT JOIN [shuffle] (
SELECT
clientid,
cast(shopType AS string) AS shopType,
thirdnick AS buyerNick
FROM
member.itnri
WHERE
brandid IN(1)
and thirdnick != ''
and thirdnick is not null
AND isdelete = 0
)
as integralThirdNickRelationTable2 ON platmemberHXAndClientID.clientid =
integralThirdNickRelationTable2.clientid
) AS allr
UNION
all
SELECT
hx.shoptype,
qy.thirdnick as buyerNick
FROM
(
SELECT
cast(shopType AS string) AS shopType,
split_part (buyerNick, ':', 1) AS corpid,
split_part (buyerNick, ':', 2) AS externaluserid
FROM
(
select
cast(shopType AS string) AS shopType,
thirdnick as buyerNick
from
member.cmdhi
where
mainshopnick = 'a'
and isdelete = 0
and thirdnick != ''
and thirdnick is not null
and shopType = 56
)
as hx1
) AS hx
LEFT JOIN [
shuffle ] (
SELECT
clientid AS externaluserid,
ownercorpid AS corpid,
thirdnick
FROM
member.qeudi
WHERE
mainshopnick = 'a'
) AS qy ON
hx.corpid = qy.corpid
AND
hx.externaluserid = qy.externaluserid
) AS platmemberHXAll
inner join
[shuffle] (
select
channelMemberNickGroup.buyerNick,
channelMemberNickGroup.shopType,
channelMemberNickGroup.channelid
from
(
select
nick as buyerNick,
cast(shopType AS string) AS shopType,
channelid
from
member.cmdn
where
mainsellernick = 'a'
and
isdelete = 0
and
nick != ''
and
nick is not null
) as
channelMemberNickGroup left semi
join [
shuffle ] (
select
othercon.channelid
from
(
select
channelid
from
member.cmdi
where
mainSellerNick = 'a'
and isdelete = 0
and channelid != ''
and channelid is not null
and (
(firstPayShop in('123'))
and (lastPayShop in('123'))
)
)
as othercon
inner join [ shuffle ] (
select
channelid
from
member.cmdps
where
mainSellerNick = 'a'
and isdelete = 0
and channelid != ''
and channelid is not null
and payshop in('123')
)
as payshopcon on othercon.channelid = payshopcon.channelid
) as
sinqlgroup on channelMemberNickGroup.channelid = sinqlgroup.channelid
) as
channelmemberMember2021 on channelmemberMember2021.shopType =
platmemberHXAll.shopType
and
channelmemberMember2021.buyerNick = platmemberHXAll.buyerNick
) as BaseGroup
)
select
Tradewithgroup.buyerNick,
Tradewithgroup.shopType,
max(mobile) as mobile
from
Tradewithgroup
inner join [shuffle]
RFMwithgroup on Tradewithgroup.buyerNick = RFMwithgroup.buyerNick
and Tradewithgroup.shopType =
RFMwithgroup.shopType
inner join [shuffle]
Basewithgroup on RFMwithgroup.buyerNick = Basewithgroup.buyerNick
and RFMwithgroup.shopType =
Basewithgroup.shopType
group by
Tradewithgroup.buyerNick,
Tradewithgroup.shopType
) AS mergeMemberResultSQL
) AS result
LEFT JOIN [ shuffle ] (
SELECT
clientid,
cast(shoptype AS string) AS shopType,
thirdnick AS buyerNick
FROM
member.itnri
WHERE
brandid IN(1)
AND isdelete = 0
and thirdnick != ''
and thirdnick is not null
) AS memberRelationt1 ON result.shoptype =
memberRelationt1.shoptype
AND result.buyernick =
memberRelationt1.buyernick
) as mergeClientIdt1
LEFT JOIN [ shuffle ] (
SELECT
clientid,
cast(shoptype AS string) AS shopType,
thirdnick AS buyerNick
FROM
member.itnri
WHERE
brandid IN(1)
AND isdelete = 0
and thirdnick != ''
and thirdnick is not null
) AS memberRelationt2 ON mergeClientIdt1.clientid =
memberRelationt2.clientid
) as crow on selleridtab1.buyernick = crow.buyernick
) as resultnotMob
left join [ shuffle ] (
select
mobile,
buyernick,
cast(shopType AS string) AS shopType
from
member.pmdi
where
shoptype not in (2, 3, 4, 34)
and mainsellernick = 'a'
and buyerNick != ''
and buyerNick is not null
) as platMob on resultnotMob.buyernick = platMob.buyernick
and resultnotMob.shopType = platMob.shopType
),
resultAllOther as (
SELECT
clientid,
GROUP_CONCAT(
DISTINCT (
CASE
WHEN shoptype = '2' THEN (
concat(
if(
sellernick is null,
'err',
cast(sellernick AS string)
),
'_adv_qry_sep_1_',
buyerNick
)
)
END
),
'_adv_qry_sep_2_'
) AS taoBaoouid,
max(
CASE
WHEN shoptype = '4' THEN buyerNick
END
) AS jdnick,
max(
CASE
WHEN shoptype = '13' THEN buyerNick
END
) AS yzId,
GROUP_CONCAT(
DISTINCT (
CASE
WHEN shoptype = '34' THEN (
concat(
if(
sellernick is null,
'err',
cast(sellernick AS string)
),
'_adv_qry_sep_1_',
buyerNick
)
)
END
),
'_adv_qry_sep_2_'
) AS dYId,
max(
CASE
WHEN shoptype = '20' THEN buyerNick
END
) AS wMId,
max(
CASE
WHEN shoptype = '1' THEN buyerNick
END
) AS mobile1,
max(mobile) AS mobile2,
max(
CASE
WHEN shoptype = '56' THEN buyerNick
END
) AS externalUserId,
max(
CASE
WHEN shoptype = '35' THEN buyerNick
END
) AS unionid,
max(
CASE
WHEN shoptype <> '2'
AND shoptype <> '4'
AND shoptype <> '13'
AND shoptype <> '34'
AND shoptype <> '20'
AND shoptype <> '1'
AND shoptype <> '56'
AND shoptype <> '35' THEN buyerNick
END
) AS othernick
FROM
resultSrc
GROUP BY
clientid
)
select
resultAllOther.taoBaoouid as taoBaoouid,
resultAllOther.jdnick as jdnick,
resultAllOther.yzId as yzId,
resultAllOther.dYId as dYId,
resultAllOther.wMId as wMId,
IF (
resultAllOther.mobile1 is not NULL,
resultAllOther.mobile1,
resultAllOther.mobile2
) AS mobile,
resultAllOther.othernick as othernick,
resultAllOther.externalUserId as externalUserId,
resultAllOther.unionid as unionid
from
resultAllOther;
I don't know where cause this,so I put all here.
it seems like IMPALA-9809 but I have already fix it ,still cause crash.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)