acelyc111 opened a new issue #4660:
URL: https://github.com/apache/incubator-doris/issues/4660


   **Describe the bug**
   BE coredump when do schema change on a column from CHAR(10) to VARCHAR(64)
   
   ```
   Core was generated by 
`/home/work/app/doris/zjyprc-hadoop/be/package/be/lib/palo_be'.
   Program terminated with signal 11, Segmentation fault.
   #0  is_null (this=0x52a4c280) at 
/home/laiyingchun/ap_doris/be/src/olap/wrapper_field.h:84
   84   /home/laiyingchun/ap_doris/be/src/olap/wrapper_field.h: 没有那个文件或目录.
   Missing separate debuginfos, use: debuginfo-install 
glibc-2.17-157.el7_3.1.x86_64 libgcc-4.8.5-28.el7_5.1.x86_64 
zlib-1.2.7-17.el7.x86_64
   (gdb)
   (gdb)
   (gdb) bt
   #0  is_null (this=0x52a4c280) at 
/home/laiyingchun/ap_doris/be/src/olap/wrapper_field.h:84
   #1  compare_cell<doris::WrapperField, doris::RowCursorCell> (this=<optimized 
out>, rhs=<synthetic pointer>, lhs=...) at 
/home/laiyingchun/ap_doris/be/src/olap/field.h:137
   #2  doris::ColumnDataWriter::next<doris::RowCursor> 
(this=this@entry=0x8c0ad20, row=...) at 
/home/laiyingchun/ap_doris/be/src/olap/rowset/column_data_writer.cpp:147
   #3  0x0000000000f285e1 in doris::ColumnDataWriter::write<doris::RowCursor> 
(this=0x8c0ad20, row=...) at 
/home/laiyingchun/ap_doris/be/src/olap/rowset/column_data_writer.cpp:130
   
   #4  0x0000000000f1894b in 
doris::AlphaRowsetWriter::_add_row<doris::RowCursor> (this=0x35c87540, row=...) 
at /home/laiyingchun/ap_doris/be/src/olap/rowset/alpha_rowset_writer.cpp:83
   #5  0x0000000001583cc0 in _write_row_block (row_block=0x8c0b900, 
rowset_writer=0x35c87540, this=0x3af04060) at 
/home/laiyingchun/ap_doris/be/src/olap/schema_change.cpp:745
   #6  doris::SchemaChangeDirectly::process (this=0x3af04060, 
rowset_reader=..., rowset_writer=0x35c87540, new_tablet=..., base_tablet=...) 
at /home/laiyingchun/ap_doris/be/src/olap/schema_change.cpp:845
   #7  0x000000000158af86 in 
doris::SchemaChangeHandler::_convert_historical_rowsets (sc_params=...) at 
/home/laiyingchun/ap_doris/be/src/olap/schema_change.cpp:1718
   #8  0x000000000158d59d in 
doris::SchemaChangeHandler::_do_process_alter_tablet_v2 
(this=this@entry=0x7fdf53af7cf0, request=...) at 
/home/laiyingchun/ap_doris/be/src/olap/schema_change.cpp:1388
   #9  0x000000000158e5a2 in 
doris::SchemaChangeHandler::process_alter_tablet_v2 
(this=this@entry=0x7fdf53af7cf0, request=...) at 
/home/laiyingchun/ap_doris/be/src/olap/schema_change.cpp:1217
   #10 0x00000000015c0abf in doris::EngineAlterTabletTask::execute 
(this=0x7fdf53af7f40) at 
/home/laiyingchun/ap_doris/be/src/olap/task/engine_alter_tablet_task.cpp:39
   #11 0x0000000000df284e in doris::StorageEngine::execute_task 
(this=0x5c6cc80, task=task@entry=0x7fdf53af7f40) at 
/home/laiyingchun/ap_doris/be/src/olap/storage_engine.cpp:932
   #12 0x00000000013ea8d1 in doris::TaskWorkerPool::_alter_tablet 
(this=this@entry=0x6d79e60, worker_pool_this=worker_pool_this@entry=0x6d79e60, 
agent_task_req=..., signature=signature@entry=16036347, 
task_type=task_type@entry=doris::TTaskType::ALTER,
       finish_task_request=finish_task_request@entry=0x7fdf53af8010) at 
/home/laiyingchun/ap_doris/be/src/agent/task_worker_pool.cpp:514
   #13 0x00000000013f3e27 in 
doris::TaskWorkerPool::_alter_tablet_worker_thread_callback 
(arg_this=0x6d79e60) at 
/home/laiyingchun/ap_doris/be/src/agent/task_worker_pool.cpp:466
   #14 0x00007fdfd67eedc5 in start_thread () from /lib64/libpthread.so.0
   #15 0x00007fdfd6afa73d in clone () from /lib64/libc.so.6
   (gdb) f 1
   #1  compare_cell<doris::WrapperField, doris::RowCursorCell> (this=<optimized 
out>, rhs=<synthetic pointer>, lhs=...) at 
/home/laiyingchun/ap_doris/be/src/olap/field.h:137
   137  /home/laiyingchun/ap_doris/be/src/olap/field.h: 没有那个文件或目录.
   (gdb) p lhs
   $4 = (const doris::WrapperField &) @0x52a4c280: {
     _vptr.WrapperField = 0x600000000537970,
     _rep = 0x0,
     _is_string_type = false,
     _field_buf = 0x0,                     // I‘m confused how these fields are 
0x0.
     _owned_buf = 0x0,
     _length = 281474976710656,
     _var_length = 0,
     _string_content = {
       _M_t = {
         _M_t = {
           <std::_Tuple_impl<0, char*, std::default_delete<char []> >> = {
             <std::_Tuple_impl<1, std::default_delete<char []> >> = {
               <std::_Head_base<1, std::default_delete<char []>, true>> = {
                 <std::default_delete<char []>> = {<No data fields>}, <No data 
fields>}, <No data fields>},
             <std::_Head_base<0, char*, false>> = {
               _M_head_impl = 0x0
             }, <No data fields>}, <No data fields>}
       }
     }
   }
   ```
   I‘m confused ho fields like _field_buf, _rep are 0x0.


----------------------------------------------------------------
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]



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

Reply via email to