lizhiboo commented on issue #2706:
URL: https://github.com/apache/rocketmq/issues/2706#issuecomment-802804719
> when the flush is abnormal ,SEND_OK will still be returned 。It will cause
possible message loss .
>
> I will submit a PR to fix it
>
> code show as below :
>
> ```java
> public int flush(final int flushLeastPages) {
> if (this.isAbleToFlush(flushLeastPages)) {
> if (this.hold()) {
> int value = getReadPosition();
>
> try {
> //We only append data to fileChannel or mappedByteBuffer,
never both.
> if (writeBuffer != null || this.fileChannel.position() !=
0) {
> this.fileChannel.force(false);
> } else {
> this.mappedByteBuffer.force();
> }
> } catch (Throwable e) {
> log.error("Error occurred when force data to disk.", e);
> }
>
> this.flushedPosition.set(value);
> this.release();
> } else {
> log.warn("in flush, hold failed, flush offset = " +
this.flushedPosition.get());
> this.flushedPosition.set(getReadPosition());
> }
> }
> return this.getFlushedPosition();
> }
> ```
Can u details the situation, such as rmq version, and replicas setting?
--
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]