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

xuanwo pushed a commit to branch poll-write
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git

commit b24330c4d74db8672734df96d59b006928509b91
Author: Xuanwo <[email protected]>
AuthorDate: Mon Sep 11 16:48:03 2023 +0800

    Polish logging
    
    Signed-off-by: Xuanwo <[email protected]>
---
 core/src/layers/logging.rs            | 24 +++++++++++++-----------
 core/src/raw/oio/write/range_write.rs |  8 ++++++--
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/core/src/layers/logging.rs b/core/src/layers/logging.rs
index 42084eede..71bb7c099 100644
--- a/core/src/layers/logging.rs
+++ b/core/src/layers/logging.rs
@@ -1258,12 +1258,13 @@ impl<W: oio::Write> oio::Write for LoggingWriter<W> {
                 self.written += n as u64;
                 trace!(
                     target: LOGGING_TARGET,
-                    "service={} operation={} path={} written={} -> data write 
{}B",
+                    "service={} operation={} path={} written={}B -> input data 
{}B, write {}B",
                     self.ctx.scheme,
                     WriteOperation::Write,
                     self.path,
                     self.written,
-                    n
+                    bs.remaining(),
+                    n,
                 );
                 Poll::Ready(Ok(n))
             }
@@ -1272,7 +1273,7 @@ impl<W: oio::Write> oio::Write for LoggingWriter<W> {
                     log!(
                         target: LOGGING_TARGET,
                         lvl,
-                        "service={} operation={} path={} written={} -> data 
write failed: {}",
+                        "service={} operation={} path={} written={}B -> data 
write failed: {}",
                         self.ctx.scheme,
                         WriteOperation::Write,
                         self.path,
@@ -1290,7 +1291,7 @@ impl<W: oio::Write> oio::Write for LoggingWriter<W> {
             Ok(_) => {
                 trace!(
                     target: LOGGING_TARGET,
-                    "service={} operation={} path={} written={} -> abort 
writer",
+                    "service={} operation={} path={} written={}B -> abort 
writer",
                     self.ctx.scheme,
                     WriteOperation::Abort,
                     self.path,
@@ -1303,7 +1304,7 @@ impl<W: oio::Write> oio::Write for LoggingWriter<W> {
                     log!(
                         target: LOGGING_TARGET,
                         lvl,
-                        "service={} operation={} path={} written={} -> abort 
writer failed: {}",
+                        "service={} operation={} path={} written={}B -> abort 
writer failed: {}",
                         self.ctx.scheme,
                         WriteOperation::Abort,
                         self.path,
@@ -1321,7 +1322,7 @@ impl<W: oio::Write> oio::Write for LoggingWriter<W> {
             Ok(_) => {
                 debug!(
                     target: LOGGING_TARGET,
-                    "service={} operation={} path={} written={} -> data 
written finished",
+                    "service={} operation={} path={} written={}B -> data 
written finished",
                     self.ctx.scheme,
                     self.op,
                     self.path,
@@ -1334,7 +1335,7 @@ impl<W: oio::Write> oio::Write for LoggingWriter<W> {
                     log!(
                         target: LOGGING_TARGET,
                         lvl,
-                        "service={} operation={} path={} written={} -> data 
close failed: {}",
+                        "service={} operation={} path={} written={}B -> data 
close failed: {}",
                         self.ctx.scheme,
                         WriteOperation::Close,
                         self.path,
@@ -1355,11 +1356,12 @@ impl<W: oio::BlockingWrite> oio::BlockingWrite for 
LoggingWriter<W> {
                 self.written += n as u64;
                 trace!(
                     target: LOGGING_TARGET,
-                    "service={} operation={} path={} written={} -> data write 
{}B",
+                    "service={} operation={} path={} written={}B -> input data 
{}B, write {}B",
                     self.ctx.scheme,
                     WriteOperation::BlockingWrite,
                     self.path,
                     self.written,
+                    bs.remaining(),
                     n
                 );
                 Ok(n)
@@ -1369,7 +1371,7 @@ impl<W: oio::BlockingWrite> oio::BlockingWrite for 
LoggingWriter<W> {
                     log!(
                         target: LOGGING_TARGET,
                         lvl,
-                        "service={} operation={} path={} written={} -> data 
write failed: {}",
+                        "service={} operation={} path={} written={}B -> data 
write failed: {}",
                         self.ctx.scheme,
                         WriteOperation::BlockingWrite,
                         self.path,
@@ -1387,7 +1389,7 @@ impl<W: oio::BlockingWrite> oio::BlockingWrite for 
LoggingWriter<W> {
             Ok(_) => {
                 debug!(
                     target: LOGGING_TARGET,
-                    "service={} operation={} path={} written={} -> data 
written finished",
+                    "service={} operation={} path={} written={}B -> data 
written finished",
                     self.ctx.scheme,
                     self.op,
                     self.path,
@@ -1400,7 +1402,7 @@ impl<W: oio::BlockingWrite> oio::BlockingWrite for 
LoggingWriter<W> {
                     log!(
                         target: LOGGING_TARGET,
                         lvl,
-                        "service={} operation={} path={} written={} -> data 
close failed: {}",
+                        "service={} operation={} path={} written={}B -> data 
close failed: {}",
                         self.ctx.scheme,
                         WriteOperation::BlockingClose,
                         self.path,
diff --git a/core/src/raw/oio/write/range_write.rs 
b/core/src/raw/oio/write/range_write.rs
index ae4558a4c..f01f7d40f 100644
--- a/core/src/raw/oio/write/range_write.rs
+++ b/core/src/raw/oio/write/range_write.rs
@@ -128,7 +128,6 @@ impl<W: RangeWrite> oio::Write for RangeWriter<W> {
         loop {
             match &mut self.state {
                 State::Idle(w) => {
-                    let w = w.take().unwrap();
                     match self.location.clone() {
                         Some(location) => {
                             let remaining = bs.remaining();
@@ -152,6 +151,7 @@ impl<W: RangeWrite> oio::Write for RangeWriter<W> {
                             align_buffer.push(bs);
 
                             let written = self.written;
+                            let w = w.take().unwrap();
                             let fut = async move {
                                 let size = align_buffer.len() as u64;
                                 let res = w
@@ -168,6 +168,7 @@ impl<W: RangeWrite> oio::Write for RangeWriter<W> {
                             self.state = State::Write(Box::pin(fut));
                         }
                         None => {
+                            let w = w.take().unwrap();
                             let fut = async move {
                                 let res = w.initiate_range().await;
 
@@ -188,7 +189,10 @@ impl<W: RangeWrite> oio::Write for RangeWriter<W> {
                     let (consume, written) = res?;
                     self.written += written;
                     self.align_buffer.clear();
-                    return Poll::Ready(Ok(consume));
+                    // It's possible that the buffer is already aligned, no 
bytes has been consumed.
+                    if consume != 0 {
+                        return Poll::Ready(Ok(consume));
+                    }
                 }
                 State::Complete(_) => {
                     unreachable!("RangeWriter must not go into State::Complete 
during poll_write")

Reply via email to