This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 666769796f9550c600757b67f481e2b3e5f86082 Author: Kaijie Chen <c...@apache.org> AuthorDate: Tue Sep 12 11:04:10 2023 +0800 [fix](load) check segment file size when finalize (#24196) --- be/src/olap/rowset/segment_v2/segment_writer.cpp | 13 ++++--------- be/src/olap/rowset/segment_v2/segment_writer.h | 1 - 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/be/src/olap/rowset/segment_v2/segment_writer.cpp b/be/src/olap/rowset/segment_v2/segment_writer.cpp index e1bbe03f1a..8e998fb561 100644 --- a/be/src/olap/rowset/segment_v2/segment_writer.cpp +++ b/be/src/olap/rowset/segment_v2/segment_writer.cpp @@ -900,11 +900,9 @@ Status SegmentWriter::finalize_footer(uint64_t* segment_file_size) { // finish RETURN_IF_ERROR(_file_writer->finalize()); *segment_file_size = _file_writer->bytes_appended(); - return Status::OK(); -} - -Status SegmentWriter::finalize_footer() { - RETURN_IF_ERROR(_write_footer()); + if (*segment_file_size == 0) { + return Status::Corruption("Bad segment, file size = 0"); + } return Status::OK(); } @@ -921,10 +919,7 @@ Status SegmentWriter::finalize(uint64_t* segment_file_size, uint64_t* index_size // write index RETURN_IF_ERROR(finalize_columns_index(index_size)); // write footer - RETURN_IF_ERROR(finalize_footer()); - // finish - RETURN_IF_ERROR(_file_writer->finalize()); - *segment_file_size = _file_writer->bytes_appended(); + RETURN_IF_ERROR(finalize_footer(segment_file_size)); if (timer.elapsed_time() > 5000000000l) { LOG(INFO) << "segment flush consumes a lot time_ns " << timer.elapsed_time() diff --git a/be/src/olap/rowset/segment_v2/segment_writer.h b/be/src/olap/rowset/segment_v2/segment_writer.h index 0b17ed4faa..276de1a430 100644 --- a/be/src/olap/rowset/segment_v2/segment_writer.h +++ b/be/src/olap/rowset/segment_v2/segment_writer.h @@ -119,7 +119,6 @@ public: Status finalize_columns_data(); Status finalize_columns_index(uint64_t* index_size); Status finalize_footer(uint64_t* segment_file_size); - Status finalize_footer(); void init_column_meta(ColumnMetaPB* meta, uint32_t column_id, const TabletColumn& column, TabletSchemaSPtr tablet_schema); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org