This is an automated email from the ASF dual-hosted git repository.

lizhimin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 6fb455a1d4 [ISSUE #8409] Fix tiered storage roll file logic if 
committing the last part of a file failed (#8410)
6fb455a1d4 is described below

commit 6fb455a1d4dc7416c81ad447fbfe4f9429765609
Author: bxfjb <48467309+bx...@users.noreply.github.com>
AuthorDate: Tue Jul 23 14:53:39 2024 +0800

    [ISSUE #8409] Fix tiered storage roll file logic if committing the last 
part of a file failed (#8410)
    
    Co-authored-by: zhaoyuhan <zhaoyu...@xiaomi.com>
---
 .../org/apache/rocketmq/tieredstore/file/FlatAppendFile.java   | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git 
a/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/file/FlatAppendFile.java
 
b/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/file/FlatAppendFile.java
index d048413798..b9ba80d08d 100644
--- 
a/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/file/FlatAppendFile.java
+++ 
b/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/file/FlatAppendFile.java
@@ -175,8 +175,14 @@ public class FlatAppendFile {
             FileSegment fileSegment = this.getFileToWrite();
             result = fileSegment.append(buffer, timestamp);
             if (result == AppendResult.FILE_FULL) {
-                fileSegment.commitAsync().join();
-                return 
this.rollingNewFile(this.getAppendOffset()).append(buffer, timestamp);
+                boolean commitResult = fileSegment.commitAsync().join();
+                log.info("FlatAppendFile#append not successful for the file {} 
is full, commit result={}",
+                    fileSegment.getPath(), commitResult);
+                if (commitResult) {
+                    return 
this.rollingNewFile(this.getAppendOffset()).append(buffer, timestamp);
+                } else {
+                    return AppendResult.UNKNOWN_ERROR;
+                }
             }
         } finally {
             fileSegmentLock.writeLock().unlock();

Reply via email to