This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new d9405529985 [fix](chore) fix DCHECK failure of BufferWritable if
failed to alloc memory (#35345)
d9405529985 is described below
commit d94055299856f90d84df400f0fb94cb93b21997b
Author: TengJianPing <[email protected]>
AuthorDate: Sat May 25 00:25:12 2024 +0800
[fix](chore) fix DCHECK failure of BufferWritable if failed to alloc memory
(#35345)
---
be/src/vec/common/string_buffer.hpp | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/be/src/vec/common/string_buffer.hpp
b/be/src/vec/common/string_buffer.hpp
index 29365579222..8dca6f057a2 100644
--- a/be/src/vec/common/string_buffer.hpp
+++ b/be/src/vec/common/string_buffer.hpp
@@ -41,16 +41,13 @@ public:
_now_offset += 1;
}
+ // commit may not be called if exception is thrown in writes(e.g. alloc
mem failed)
void commit() {
- auto now_offset = _now_offset;
+ ColumnString::check_chars_length(_offsets.back() + _now_offset, 0);
+ _offsets.push_back(_offsets.back() + _now_offset);
_now_offset = 0;
- // the following code may throw exception, and DCHECK in destructor
will fail if _now_offset is not reset to 0
- ColumnString::check_chars_length(_offsets.back() + now_offset, 0);
- _offsets.push_back(_offsets.back() + now_offset);
}
- ~BufferWritable() { DCHECK(_now_offset == 0); }
-
template <typename T>
void write_number(T data) {
fmt::memory_buffer buffer;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]