litao91 opened a new issue #784: Adding ROLLUP results in BE core dump
URL: https://github.com/apache/incubator-doris/issues/784
 
 
   **Describe the bug**
   
   All BE core dump after starting ROLLUP jobs. It only happens when we have 
some data in the table. Altering an empty table is fine. 
   
   **To Reproduce**
   Steps to reproduce the behavior:
   
   Step1:
   
   Create table with 
   
   ```sql
   CREATE TABLE IF NOT EXISTS app.data_hourly
   (
       `hour` DATETIME NOT NULL,
       `id1` LARGEINT NOT NULL,
       `id2` LARGEINT NOT NULL,
       `id3` LARGEINT NOT NULL,
       `id4` LARGEINT NOT NULL,
       `type1` LARGEINT NOT NULL,
       `type2` LARGEINT NOT NULL,
       `version` LARGEINT NOT NULL,
       `day` DATE NOT NULL,
       `cnt1` LARGEINT SUM,
       `cnt2` LARGEINT SUM,
       `cnt3` LARGEINT SUM,
       `cnt4` LARGEINT SUM,
       `cnt5` LARGEINT SUM,
       `cnt6` LARGEINT SUM,
       `cnt7` LARGEINT SUM,
       `cnt8` LARGEINT SUM,
       `cnt9` LARGEINT SUM,
       `cnt10` LARGEINT SUM,
       `cnt11` LARGEINT SUM,
       `val` LARGEINT SUM,
       `real_val` LARGEINT SUM
   )
   ENGINE=olap
   AGGREGATE KEY(`hour`, `id1`, `id2`, `id3`, `id4`, `type1`, `type2`, 
`version`, `day`)
   PARTITION BY RANGE(`day`)
   (
       PARTITION `p201901` VALUES LESS THAN ("2019-02-01"),
       PARTITION `p201902` VALUES LESS THAN ("2019-03-01"),
       PARTITION `p201903` VALUES LESS THAN ("2019-04-01"),
       PARTITION `p201904` VALUES LESS THAN ("2019-05-01")
   )
   DISTRIBUTED BY HASH(`id4`) BUCKETS 96
   PROPERTIES
   (
       "replication_num" = "2",
       "storage_medium" = "SSD",
       "bloom_filter_columns" = "id1,id2,id3,id4c"
   );
   ```
   Step2:
   
   Add some data with stream load
   
   Step3: 
   
   ALTER TABLE
   
   ```sql
   ALTER TABLE app.data_hourly ADD ROLLUP id4_hourly(hour,id4)
   PROPERTIES("storage_type"="column");
   ```
   
   The error:
   ```
   PC: @           0xc893a7 doris::OLAPHeader::add_version()
   *** SIGSEGV (@0x8) received by PID 1295675 (TID 0x7f411eb2d700) from PID 8; 
stack trace: ***
       @     0x7f417da6e0e0 (unknown)
       @           0xc893a7 doris::OLAPHeader::add_version()
       @           0xcaa97a doris::OLAPTable::register_data_source()
       @           0xceaa06 doris::SchemaChangeHandler::_alter_table()
       @           0xcf0939 doris::SchemaChangeHandler::_do_alter_table()
       @           0xcf1ac3 doris::SchemaChangeHandler::process_alter_table()
       @           0xc675ad doris::OLAPEngine::create_rollup_table()
       @          0x1164455 doris::TaskWorkerPool::_alter_table()
       @          0x116e345 
doris::TaskWorkerPool::_alter_table_worker_thread_callback()
       @     0x7f417d824064 start_thread
       @     0x7f417db2163d (unknown)
   ```
   
   And the core dump:
   
   ```
   (gdb) bt
   #0  0x0000000000c81a07 in __destroy<doris::PUniqueId*> (__last=<optimized 
out>, __first=0x0) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_construct.h:107
   #1  _Destroy<doris::PUniqueId*> (__last=<optimized out>, __first=<optimized 
out>) at /home/litao.91/.local/include/c++/7.3.0/bits/stl_construct.h:137
   #2  _Destroy<doris::PUniqueId*, doris::PUniqueId> (__last=0x2, __first=0x0) 
at /home/litao.91/.local/include/c++/7.3.0/bits/stl_construct.h:206
   #3  ~vector (this=0x4dc70ee8, __in_chrg=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_vector.h:434
   #4  ~pair (this=<optimized out>, __in_chrg=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_pair.h:198
   #5  destroy<std::pair<doris::TabletInfo const, std::vector<doris::PUniqueId> 
> > (this=<optimized out>, __p=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/ext/new_allocator.h:140
   #6  destroy<std::pair<doris::TabletInfo const, std::vector<doris::PUniqueId> 
> > (__a=..., __p=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/bits/alloc_traits.h:487
   #7  _M_destroy_node (this=0xa90caa303d81fa0, __p=0x4dc70eb8) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:650
   #8  _M_drop_node (this=0xa90caa303d81fa0, __p=0x4dc70eb8) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:658
   #9  _M_erase (__x=0x4dc70eb8, this=0xa90caa303d81fa0) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:1858
   #10 ~_Rb_tree (this=0xa90caa303d81fa0, __in_chrg=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:949
   #11 ~map (this=<optimized out>, __in_chrg=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_map.h:294
   #12 ~pair (this=<optimized out>, __in_chrg=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_pair.h:198
   #13 destroy<std::pair<std::pair<long, long> const, 
std::map<doris::TabletInfo, std::vector<doris::PUniqueId> > > > 
(this=<optimized out>, __p=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/ext/new_allocator.h:140
   #14 destroy<std::pair<std::pair<long, long> const, 
std::map<doris::TabletInfo, std::vector<doris::PUniqueId> > > > (__a=..., 
__p=<optimized out>) at 
/home/litao.91/.local/include/c++/7.3.0/bits/alloc_traits.h:487
   #15 _M_destroy_node (this=0x824ae30, __p=0x824af20) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:650
   #16 _M_drop_node (this=0x824ae30, __p=0x824af20) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:658
   #17 _M_erase (__x=0x824af20, this=0x824ae30) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:1858
   #18 _M_erase (__x=0x824afd0, this=0x824ae30) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:1856
   #19 _M_erase (__x=0x824b020, this=0x824ae30) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:1856
   #20 _M_erase (__x=0x3566640 <typeinfo for brpc::FlagsRequest>, 
this=0x824ae30) at /home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:1856
   #21 _M_erase (__x=0x824b0b8, this=0x824ae30) at 
/home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:1856
   #22 std::_Rb_tree<std::pair<long, long>, std::pair<std::pair<long, long> 
const, std::map<doris::TabletInfo, std::vector<doris::PUniqueId, 
std::allocator<doris::PUniqueId> >, std::less<doris::TabletInfo>, 
std::allocator<std::pair<doris::TabletInfo const, std::vector<doris::PUniqueId, 
std::allocator<doris::PUniqueId> > > > > >, 
std::_Select1st<std::pair<std::pair<long, long> const, 
std::map<doris::TabletInfo, std::vector<doris::PUniqueId, 
std::allocator<doris::PUniqueId> >, std::less<doris::TabletInfo>, 
std::allocator<std::pair<doris::TabletInfo const, std::vector<doris::PUniqueId, 
std::allocator<doris::PUniqueId> > > > > > >, std::less<std::pair<long, long> 
>, std::allocator<std::pair<std::pair<long, long> const, 
std::map<doris::TabletInfo, std::vector<doris::PUniqueId, 
std::allocator<doris::PUniqueId> >, std::less<doris::TabletInfo>, 
std::allocator<std::pair<doris::TabletInfo const, std::vector<doris::PUniqueId, 
std::allocator<doris::PUniqueId> > > > > > > >::_M_erase (this=0x824ae30, 
__x=0xcd5242 <doris::RowCursor::full_key_cmp(doris::RowCursor const&) 
const+34>) at /home/litao.91/.local/include/c++/7.3.0/bits/stl_tree.h:1856
   #23 0x0000000000ca2fda in _M_construct_aux<char const*> (__end=<optimized 
out>, __beg=0x7f342b84fff0 "H\023\323", <incomplete sequence \320>, 
this=0x7f342b84fe40) at 
/home/litao.91/.local/include/c++/7.3.0/bits/basic_string.h:236
   #24 _M_construct<char const*> (__end=<optimized out>, __beg=0x7f342b84fff0 
"H\023\323", <incomplete sequence \320>, this=0x7f342b84fe40) at 
/home/litao.91/.local/include/c++/7.3.0/bits/basic_string.h:255
   #25 basic_string (__a=..., __s=0x7f342b84fff0 "H\023\323", <incomplete 
sequence \320>, this=0x7f342b84fe40) at 
/home/litao.91/.local/include/c++/7.3.0/bits/basic_string.h:511
   #26 construct_file_name (suffix=..., segment=2, segment_group_id=1, 
version_hash=136621568, version=<synthetic pointer>, this=<optimized out>) at 
/home/litao.91/repos/incubator-doris/be/src/olap/olap_table.cpp:2038
   #27 
doris::OLAPTable::construct_incremental_data_file_path[abi:cxx11](std::pair<long,
 long>, long, int, int) const (this=<optimized out>, version=..., 
version_hash=136621568, segment_group_id=1, segment=2) at 
/home/litao.91/repos/incubator-doris/be/src/olap/olap_table.cpp:1996
   #28 0x0000000000ce3066 in doris::RowBlockChanger::change_row_block 
(this=0x824b0e8, df_type=<optimized out>, ref_block=..., 
data_version=<optimized out>, mutable_block=0x773ad10, filted_rows=<optimized 
out>) at /home/litao.91/repos/incubator-doris/be/src/olap/schema_change.cpp:314
   #29 0x0000000000ce8f99 in ?? () at 
/home/litao.91/.local/include/c++/7.3.0/bits/shared_ptr_base.h:684
   #30 0x0000000000000000 in ?? ()
   ```
   
   **Expected behavior**
   A clear and concise description of what you expected to happen.
   
   **Screenshots**
   If applicable, add screenshots to help explain your problem.
   
   **Desktop (please complete the following information):**
    - OS: [e.g. iOS]
    - Browser [e.g. chrome, safari]
    - Version [e.g. 22]
   
   **Smartphone (please complete the following information):**
    - Device: [e.g. iPhone6]
    - OS: [e.g. iOS8.1]
    - Browser [e.g. stock browser, safari]
    - Version [e.g. 22]
   
   **Additional context**
   Add any other context about the problem here.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to