Open guomm opened 2 years ago
I briefly reproduced your scene, but there was no be crash. Could you please describe your usage in detail, such as providing scheme and query
same sql,sometimes success,sometimes crash。
table:
CREATE TABLE dwd_xx_order_df_test
(
shop_id
bigint(20) NULL COMMENT "id",
receiving_scan_time
varchar(32) NULL COMMENT "时间",
order_no
varchar(32) NULL COMMENT "x",
order_details_id
varchar(32) NULL COMMENT "x",
is_anti_spam
int(11) NULL COMMENT "x",
item_id
bigint(20) NULL COMMENT "x",
status
int(11) NULL COMMENT "x",
receiving_scan_flag
int(11) NULL COMMENT "x",
user_id
bigint(20) NULL COMMENT "x",
mobile
varchar(255) NULL COMMENT "x",
address
text NULL COMMENT "x",
vid
text NULL COMMENT "x",
vcid
bigint(20) NULL COMMENT "x",
tcid
bigint(20) NULL COMMENT "x",
item_num
bigint(20) NULL COMMENT "x",
purchase_price
double NULL COMMENT "x",
total_amount
double NULL COMMENT "x",
tid
bigint(20) NULL COMMENT "x",
is_lack
int(11) NULL COMMENT "x",
city_market_id
bigint(20) NULL COMMENT "x",
is_same_city
int(11) NULL COMMENT "x",
product_label_status
int(11) NULL COMMENT "x",
qc_status
int(11) NULL COMMENT "x",
create_time
varchar(32) NULL COMMENT "x",
pay_time
varchar(32) NULL COMMENT "x",
dt
varchar(32) NULL COMMENT "x"
) ENGINE=OLAP
DUPLICATE KEY(shop_id
, receiving_scan_time
)
COMMENT "OLAP"
DISTRIBUTED BY HASH(shop_id
) BUCKETS 5
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"in_memory" = "false",
"storage_format" = "V2"
);
query sql:
select shop_id, receiving_scan_time, order_no, order_details_id, case when product_label_status = 9 then '是' else '否' end as is_cancel, case when is_anti_spam = 0 then '非作弊' when is_anti_spam = 1 then '作弊1' when is_anti_spam = 2 then '作弊2' when is_anti_spam = 3 then '作弊3' end as is_anti_spam, item_id, case when status = 0 then 'off' when status = 1 then 'on' end as status, receiving_scan_flag, user_id, mobile, address, vid, vcid, tcid, item_num, purchase_price, total_amount, tid, is_lack, city_market_id, is_same_city, product_label_status, qc_status, create_time, pay_time, dt from dwd_old_order_df_test where receiving_scan_time >= '2022-10-01';
I briefly reproduced your scene, but there was no be crash. Could you please describe your usage in detail, such as providing scheme and query
when i change field “receiving_scan_time“ from varchar to date,and set default value. so far not crash
Search before asking
Version
1.1.3
What's Wrong?
SIGSEGV address not mapped to object (@0x9) received by PID 20571 (TID 0x7f1ba73d4700) from PID 9; stack trace: 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t, void) at /mnt/disk2/ygl/code/github/apache-doris/be/src/common/signal_handler.h:420 1# 0x00007F1BBE192400 in /lib64/libc.so.6 2# doris::vectorized::ColumnDictionary::convert_to_predicate_column_if_dictionary() at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/columns/column_dictionary.h:272
3# doris::vectorized::ColumnNullable::convert_to_predicate_column_if_dictionary() at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/columns/column_nullable.h:273
4# doris::segment_v2::BinaryDictPageDecoder::next_batch(unsigned long, COW::mutable_ptr&) at /mnt/disk2/ygl/code/github/apache-doris/be/src/olap/rowset/segment_v2/binary_dict_page.cpp:237
5# doris::segment_v2::FileColumnIterator::next_batch(unsigned long , COW::mutable_ptr&, bool) at /mnt/disk2/ygl/code/github/apache-doris/be/src/olap/rowset/segment_v2/column_reader.cpp:629
6# doris::segment_v2::SegmentIterator::_read_columns_by_index(unsigned int, unsigned int&, bool) at /mnt/disk2/ygl/code/github/apache-doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:808
7# doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block) at /mnt/disk2/ygl/code/github/apache-doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:955
8# doris::vectorized::VUnionIterator::next_batch(doris::vectorized::Block) at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/olap/vgeneric_iterators.cpp:443
9# doris::BetaRowsetReader::next_block(doris::vectorized::Block) at /mnt/disk2/ygl/code/github/apache-doris/be/src/olap/rowset/beta_rowset_reader.cpp:204
10# doris::vectorized::VCollectIterator::Level0Iterator::next(doris::vectorized::Block) at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/olap/vcollect_iterator.cpp:235
11# doris::vectorized::VCollectIterator::Level1Iterator::next(doris::vectorized::Block) at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/olap/vcollect_iterator.cpp:294
12# doris::vectorized::BlockReader::_direct_next_block(doris::vectorized::Block, doris::MemPool, doris::ObjectPool, bool) at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/olap/block_reader.cpp:177
13# doris::vectorized::VOlapScanner::get_block(doris::RuntimeState, doris::vectorized::Block, bool) at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/exec/volap_scanner.cpp:53
14# doris::vectorized::VOlapScanNode::scanner_thread(doris::vectorized::VOlapScanner) at /mnt/disk2/ygl/code/github/apache-doris/be/src/vec/exec/volap_scan_node.cpp:227
15# doris::PriorityWorkStealingThreadPool::work_thread(int) at /mnt/disk2/ygl/code/github/apache-doris/be/src/util/priority_work_stealing_thread_pool.hpp:135
16# execute_native_thread_routine in /opt/doris/be/lib/doris_be
17# start_thread in /lib64/libpthread.so.0
18# clone in /lib64/libc.so.6
What You Expected?
1
How to Reproduce?
varchar类型的排序字段,有null数据时,按照条件过滤触发BUG。 比如说receiving_scan_time是排序字段,varchar类型,按照条件receiving_scan_time > '2022-10-26' 过滤时be会crash
Anything Else?
1
Are you willing to submit PR?
Code of Conduct