-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Description
Search before asking
- I had searched in the issues and found no similar issues.
Version
3.0.3
What's Wrong?
when i refresh MATERIALIZED VIEW. the be crashed.
be.out:
F20251117 13:35:34.790050 22073 assert_cast.h:48] Bad cast from type:doris::vectorized::ColumnNullable* to doris::vectorized::ColumnVector const*
*** Check failure stack trace: ***
@ 0x55975248d556 google::LogMessage::SendToLog()
@ 0x559752489fa0 google::LogMessage::Flush()
@ 0x55975248dd99 google::LogMessageFatal::~LogMessageFatal()
@ 0x55974c5cab20 ZZ11assert_castIPKN5doris10vectorized12ColumnVectorIhEEL18TypeCheckOnRelease1EPKNS1_7IColumnEET_OT1_ENKUlOSA_E_clIS9_EES5_SD
@ 0x55974c5ca727 assert_cast<>()
@ 0x55974c5ca16d doris::vectorized::change_null_to_true()
@ 0x55974c5c8476 doris::vectorized::VRuntimeFilterWrapper::execute()
@ 0x55974c5b68bb doris::vectorized::VExprContext::execute()
@ 0x55974c5b8055 doris::vectorized::VExprContext::execute_conjuncts()
@ 0x55974c5b7aa3 doris::vectorized::VExprContext::execute_conjuncts_and_filter_block()
@ 0x55974c5b79f5 doris::vectorized::VExprContext::filter_block()
@ 0x55975225ae7a doris::pipeline::MultiCastDataStreamerSourceOperatorX::get_block()
@ 0x5597515a170e doris::pipeline::OperatorXBase::get_block_after_projects()
@ 0x5597523b881b doris::pipeline::PipelineTask::execute()
@ 0x5597523c868d doris::pipeline::TaskScheduler::_do_work()
@ 0x55974802e428 doris::ThreadPool::dispatch_thread()
@ 0x5597480233a1 doris::Thread::supervise_thread()
@ 0x7f265aa34ea5 start_thread
@ 0x7f265b463b0d __clone
@ (nil) (unknown)
*** Query id: 345f0f72d2d5440e-9d27a1ef4bdd26d4 ***
*** is nereids: 1 ***
*** tablet id: 0 ***
*** Aborted at 1763357735 (unix time) try "date -d @1763357735" if you are using GNU date ***
*** Current BE git commitID: 62a58bf ***
*** SIGABRT unknown detail explain (@0x4f73) received by PID 20339 (TID 22073 OR 0x7f20fc223700) from PID 20339; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_release/doris/be/src/common/signal_handler.h:421
1# 0x00007F265B39B400 in /lib64/libc.so.6
2# gsignal in /lib64/libc.so.6
3# abort in /lib64/libc.so.6
4# 0x0000559752497E2D in /data/doris/be/lib/doris_be
5# 0x000055975248A46A in /data/doris/be/lib/doris_be
6# google::LogMessage::SendToLog() in /data/doris/be/lib/doris_be
7# google::LogMessage::Flush() in /data/doris/be/lib/doris_be
8# google::LogMessageFatal::~LogMessageFatal() in /data/doris/be/lib/doris_be
9# doris::vectorized::ColumnVector const* assert_cast<doris::vectorized::ColumnVector const*, (TypeCheckOnRelease)1, doris::vectorized::IColumn const*>(doris::vectorized::IColumn const*&&)::{lambda(auto:1&&)#1}::operator()<doris::vectorized::IColumn const*>(doris::vectorized::IColumn const*&&) const at /home/zcp/repo_center/doris_release/doris/be/src/vec/common/assert_cast.h:48
10# doris::vectorized::ColumnVector const* assert_cast<doris::vectorized::ColumnVector const*, (TypeCheckOnRelease)1, doris::vectorized::IColumn const*>(doris::vectorized::IColumn const*&&) at /home/zcp/repo_center/doris_release/doris/be/src/vec/common/assert_cast.h:72
11# doris::vectorized::change_null_to_true(COWdoris::vectorized::IColumn::immutable_ptrdoris::vectorized::IColumn, COWdoris::vectorized::IColumn::immutable_ptrdoris::vectorized::IColumn) at /home/zcp/repo_center/doris_release/doris/be/src/vec/utils/util.hpp:207
12# doris::vectorized::VRuntimeFilterWrapper::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exprs/vruntimefilter_wrapper.cpp:114
13# doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exprs/vexpr_context.cpp:55
14# doris::vectorized::VExprContext::execute_conjuncts(std::vector<std::shared_ptrdoris::vectorized::VExprContext, std::allocator<std::shared_ptrdoris::vectorized::VExprContext > > const&, std::vector<doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false, false, DefaultMemoryAllocator>, 16ul, 15ul>, std::allocator<doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false, false, DefaultMemoryAllocator>, 16ul, 15ul>> > const*, bool, doris::vectorized::Block*, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false, false, DefaultMemoryAllocator>, 16ul, 15ul>, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exprs/vexpr_context.cpp:174
15# doris::vectorized::VExprContext::execute_conjuncts_and_filter_block(std::vector<std::shared_ptrdoris::vectorized::VExprContext, std::allocator<std::shared_ptrdoris::vectorized::VExprContext > > const&, doris::vectorized::Block*, std::vector<unsigned int, std::allocator >&, int) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exprs/vexpr_context.cpp:321
16# doris::vectorized::VExprContext::filter_block(std::vector<std::shared_ptrdoris::vectorized::VExprContext, std::allocator<std::shared_ptrdoris::vectorized::VExprContext > > const&, doris::vectorized::Block*, int) at /home/zcp/repo_center/doris_release/doris/be/src/vec/exprs/vexpr_context.cpp:154
17# doris::pipeline::MultiCastDataStreamerSourceOperatorX::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/exec/multi_cast_data_stream_source.cpp:99
18# doris::pipeline::OperatorXBase::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/exec/operator.cpp:336
19# doris::pipeline::PipelineTask::execute(bool*) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/pipeline_task.cpp:382
20# doris::pipeline::TaskScheduler::_do_work(unsigned long) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/task_scheduler.cpp:138
21# doris::ThreadPool::dispatch_thread() in /data/doris/be/lib/doris_be
22# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_release/doris/be/src/util/thread.cpp:499
23# start_thread in /lib64/libpthread.so.0
24# clone in /lib64/libc.so.6
My mv:
CREATE MATERIALIZED VIEW Ads_ProcessStatistics
BUILD IMMEDIATE
REFRESH AUTO ON MANUAL
PROPERTIES ('replication_num' = '1')
AS
WITH processes AS (
SELECT dp2.Code AS ProjectCode, dp2.Name AS ProjectName, dp.Code AS ProcessCode, dp.Name AS ProcessName
, Count(dd.Code) AS DeviceCount
, MIN(NULLIF(pd.OutDebugStage, '')) AS Stage
FROM Dim_Processes dp
JOIN Dim_Devices dd
ON dp.ProjectCode = dd.ProjectCode
AND dp.Code = dd.ProcessCode
JOIN Dim_Projects dp2 ON dp.ProjectCode <=> dp2.Code
LEFT JOIN Dim_PmsDevices pd ON dd.ProductionPlanNo = pd.PlanNo
GROUP BY dp2.Code, dp2.Name, dp.Code, dp.Name
),
latest_dates AS (
SELECT t.ProjectCode, t.ProcessCode, MAX(t.ShiftDate) AS ShiftDate
, MAX(t.LatestTime) AS LatestTime
FROM (
SELECT dp.ProjectCode, dp.Code AS ProcessCode, MAX(dda.ShiftDate) AS ShiftDate
, max(dda.StartTime) AS LatestTime
FROM Dwd_DeviceStatus dda
JOIN Dim_Devices dd
ON dda.ProjectCode <=> dd.ProjectCode
AND dda.DeviceCode = dd.Code
JOIN Dim_Processes dp
ON dd.ProjectCode <=> dp.ProjectCode
AND dd.ProcessCode = dp.Code
GROUP BY dp.ProjectCode, dp.Code
UNION ALL
SELECT dp.ProjectCode, dp.Code, MAX(dda.ShiftDate)
, max(dda.StartDate)
FROM Dwd_DeviceProductions dda
JOIN Dim_Devices dd
ON dda.ProjectCode <=> dd.ProjectCode
AND dda.DeviceCode = dd.Code
JOIN Dim_Processes dp
ON dd.ProjectCode <=> dp.ProjectCode
AND dd.ProcessCode = dp.Code
GROUP BY dp.ProjectCode, dp.Code
) t
GROUP BY t.ProjectCode, t.ProcessCode
),
prod_datas AS (
SELECT t.ProjectCode, t.ProcessCode
, ROUND(SUM(t.QualifiedQty), 2) AS QualifiedQty
, ROUND(AVG(t.QualifiedRate), 4) AS QualifiedRate
FROM (
SELECT drd.ProjectCode, drd.ProcessCode, drd.LineCode, SUM(ddp.QualifiedQty) AS QualifiedQty
, IF(SUM(ddp.Qty) = 0, NULL, ROUND(SUM(ddp.QualifiedQty) / SUM(ddp.Qty), 6)) AS QualifiedRate
FROM Dws_DeviceProductions ddp
JOIN Dim_ProcessLineRelatedDevices drd
ON ddp.ProjectCode <=> drd.ProjectCode
AND ddp.DeviceCode = drd.DeviceCode
JOIN latest_dates ld
ON ld.ProjectCode <=> ddp.ProjectCode
AND ld.ProcessCode = drd.ProcessCode
AND ld.ShiftDate = ddp.ShiftDate
WHERE ddp.ShiftName = 'WholeDay'
GROUP BY drd.ProjectCode, drd.ProcessCode, drd.LineCode
) t
GROUP BY t.ProjectCode, t.ProcessCode
),
status_durations AS (
SELECT dds.ProjectCode, dd.ProcessCode, SUM(dds.AlarmDuration + dds.WorkDuration) AS TotalWorkDuration
, SUM(dds.AlarmDuration) AS AlarmDuration, SUM(dds.AlarmFrequency) AS AlarmFrequency
FROM Dws_DeviceStatusDurations dds
JOIN Dim_Devices dd
ON dds.ProjectCode <=> dd.ProjectCode
AND dds.DeviceCode = dd.Code
JOIN latest_dates ld
ON ld.ProjectCode <=> dd.ProjectCode
AND ld.ProcessCode = dd.ProcessCode
AND ld.ShiftDate = dds.ShiftDate
WHERE ShiftName = 'WholeDay'
GROUP BY dds.ProjectCode, dd.ProcessCode
),
data_completeness AS (
SELECT t.ProjectCode, dd.ProcessCode, ld.ShiftDate
, ROUND(AVG(t.DataCompleteness), 4) AS DataCompleteness
FROM Dws_DeviceDataCompleteness t
LEFT JOIN Dim_Devices dd
ON t.ProjectCode = dd.ProjectCode
AND t.DeviceCode = dd.Code
JOIN latest_dates ld
ON dd.ProjectCode = ld.ProjectCode
AND dd.ProcessCode = ld.ProcessCode
AND ld.ShiftDate = t.ShiftDate
GROUP BY t.ProjectCode, dd.ProcessCode, ld.ShiftDate
),
stable_scores AS (
SELECT ddsl.ProjectCode, d.ProcessCode
, ROUND(AVG(ddsl.Score), 2) AS StableScore
FROM Dws_DeviceStableScores ddsl
JOIN Dim_Devices d
ON d.ProjectCode <=> ddsl.ProjectCode
AND ddsl.DeviceCode = d.Code
JOIN latest_dates ld
ON ld.ProjectCode = d.ProjectCode
AND ld.ProcessCode = d.ProcessCode
AND ld.ShiftDate = ddsl.ShiftDate
WHERE ddsl.Score > 0
AND ddsl.ShiftName = 'WholeDay'
GROUP BY ddsl.ProjectCode, d.ProcessCode
),
data_accuracy AS (
SELECT d.ProjectCode, d.ProcessCode, ld.ShiftDate
, ROUND(AVG(ddd.DataAccuracy), 4) AS DataAccuracy
FROM Dws_DeviceDataAccuracy ddd
JOIN Dim_Devices d
ON d.ProjectCode <=> ddd.ProjectCode
AND ddd.DeviceCode = d.Code
JOIN latest_dates ld
ON ld.ProjectCode = d.ProjectCode
AND ld.ProcessCode = d.ProcessCode
AND ld.ShiftDate = ddd.ShiftDate
GROUP BY d.ProjectCode, d.ProcessCode, ld.ShiftDate
)
SELECT p.ProjectCode, p.ProjectName, p.ProcessCode, p.ProcessName, p.Stage
, p.DeviceCount, ld.ShiftDate, ld.LatestTime, pd.QualifiedQty, pd.QualifiedRate
, IF(TotalWorkDuration = 0, NULL, ROUND(sd.AlarmDuration / sd.TotalWorkDuration, 4)) AS FaultRate
, sd.AlarmDuration, sd.AlarmFrequency, dcl.DataCompleteness, da.DataAccuracy, ss.StableScore
FROM processes p
LEFT JOIN latest_dates ld
ON p.ProjectCode <=> ld.ProjectCode
AND p.ProcessCode = ld.ProcessCode
LEFT JOIN prod_datas pd
ON pd.ProjectCode <=> p.ProjectCode
AND pd.ProcessCode = p.ProcessCode
LEFT JOIN status_durations sd
ON sd.ProjectCode <=> p.ProjectCode
AND sd.ProcessCode = p.ProcessCode
LEFT JOIN data_completeness dcl
ON p.ProjectCode <=> dcl.ProjectCode
AND p.ProcessCode = dcl.ProcessCode
AND dcl.ShiftDate = ld.ShiftDate
LEFT JOIN data_accuracy da
ON p.ProjectCode <=> da.ProjectCode
AND p.ProcessCode = da.ProcessCode
AND da.ShiftDate = ld.ShiftDate
LEFT JOIN stable_scores ss
ON p.ProjectCode <=> ss.ProjectCode
AND p.ProcessCode = ss.ProcessCode;
What You Expected?
be not crash
How to Reproduce?
No response
Anything Else?
No response
Are you willing to submit PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct