heguanhui opened a new issue, #64483:
URL: https://github.com/apache/doris/issues/64483

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no 
similar issues.
   
   
   ### Version
   
   newest master branch
   
   ### What's Wrong?
   
   ### Problem Description
   
   When creating a row binlog table and writing data, a coredump occurs in 
`RowBinlogSegmentWriter::init()` with the following CHECK failure:
   [----------] 2 tests from GroupRowsetWriterTest
   19:13:27   [ RUN      ] GroupRowsetWriterTest.sub_writer_rollback
   19:13:27   F20260613 19:13:27.347458 362558 
row_binlog_segment_writer.cpp:69] Check failed: lsn_col_id >= 0 binlog<row> 
schema missing __DORIS_BINLOG_LSN__
   19:13:27   *** Check failure stack trace: ***
   19:13:27       @     0x55812f5cd876  
google::LogMessageFatal::~LogMessageFatal()
   19:13:27       @     0x55812bcd1f9e  
doris::segment_v2::RowBinlogSegmentWriter::init()
   19:13:27       @     0x55812b79d73e  
doris::SegmentFlusher::_create_segment_writer()
   19:13:27       @     0x55812b798030  
doris::SegmentFlusher::flush_single_block()
   19:13:27       @     0x55812b7a18f1  
doris::SegmentCreator::flush_single_block()
   19:13:27       @     0x55812b6dfaae  
doris::SegmentCreator::flush_single_block()
   19:13:27       @     0x55812b69e591  
doris::BaseBetaRowsetWriter::flush_single_block()
   19:13:28       @     0x55812b6f4e2f  
doris::GroupRowsetWriter::flush_single_block()
   19:13:28       @     0x558114c3a9f7  
doris::GroupRowsetWriterTest_sub_writer_rollback_Test::TestBody()
   19:13:28       @     0x55812fcc2f94  
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
   19:13:28       @     0x55812fcb1db6  
testing::internal::HandleExceptionsInMethodIfSupported<>()
   19:13:28       @     0x55812fc941c7  testing::Test::Run()
   19:13:28       @     0x55812fc94cec  testing::TestInfo::Run()
   19:13:28       @     0x55812fc954b2  testing::TestSuite::Run()
   19:13:28       @     0x55812fca6ccc  
testing::internal::UnitTestImpl::RunAllTests()
   19:13:28       @     0x55812fcc4dc4  
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
   19:13:28       @     0x55812fcb3e46  
testing::internal::HandleExceptionsInMethodIfSupported<>()
   19:13:28       @     0x55812fca684b  testing::UnitTest::Run()
   19:13:29       @     0x558117a84401  RUN_ALL_TESTS()
   19:13:29       @     0x558117a79b0e  main
   19:13:29       @     0x7f419b4b3555  __libc_start_main
   19:13:29       @     0x55810c4be02a  _start
   19:13:29       @              (nil)  (unknown)
   19:13:29   run-be-ut.sh: line 595: 362558 Aborted                 (core 
dumped) LLVM_PROFILE_FILE="${profraw}" "${test}" 
--gtest_output="xml:${GTEST_OUTPUT_DIR}/${file_name}.xml" 
--gtest_print_time=true "${FILTER}" "${GEN_OUT}" "${GEN_REGRESSION_CASE}"
   
   ## Steps to Reproduce
   
   1. Run BE unit test:
      ```bash
      ./run-be-ut.sh --run GroupRowsetWriterTest.sub_writer_rollback
   
   ### GDB Debug Info
   (gdb) p this->_tablet_schema->_binlog_lsn_col_idx
   $24 = -1
   (gdb) p this->_tablet_schema->_binlog_timestamp_col_idx
   $25 = -1
   (gdb) p this->_tablet_schema->_num_columns
   $26 = 5
   
   The schema contains 5 columns (including 3 binlog special columns), but 
`_binlog_lsn_col_idx` is -1.
   
   ### Steps to Reproduce
   
   ```bash
   cd be/ut_build_dir
   ./run-be-ut.sh --run GroupRowsetWriterTest.sub_writer_rollback
   
   ### Root Cause
   When converting TTabletSchema (Thrift) to TabletSchemaPB (Protobuf) via 
TabletMeta::init_schema_from_thrift(), the indices of binlog special columns 
(__DORIS_BINLOG_LSN__ and __DORIS_BINLOG_TIMESTAMP__) are not set in the 
protobuf.
   
   As a result, when TabletSchema::init_from_pb() is called, 
_binlog_lsn_col_idx remains -1, causing the CHECK failure in 
RowBinlogSegmentWriter::init().
   
   ### Expected Behavior
   _binlog_lsn_col_idx should be correctly set to the column index of 
__DORIS_BINLOG_LSN__ (which is 2 in the test case).
   
   
   ### What You Expected?
   
   successfully executed run-be-ut.sh
   
   ### How to Reproduce?
   
   execute run-be-ut.sh will certainly reproduce this problem
   
   ### Anything Else?
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


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

To unsubscribe, e-mail: [email protected]

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