zhaohaidao commented on PR #5617:
URL: https://github.com/apache/opendal/pull/5617#issuecomment-2694987186

   > Hi, @zhaohaidao it looks like you are blocked here. Would you like to 
share what's wrong happened?
   
   Thanks, I am tracking down the problem of case failure when option 
recursive=true, for example test_list_empty_dir.
   The failure stack is as follows, I am trying to analyze whether the behavior 
of hdfs_native is as expected
   ```
   2025-03-03T16:42:04.462290Z DEBUG opendal::services: service=hdfs_native 
name= path=dc62cd36-b2be-40ef-8cdf-be3a27b16216/: list created lister
       at src/layers/logging.rs:220
   
     2025-03-03T16:42:04.462342Z TRACE opendal::services: service=hdfs_native 
name= path=dc62cd36-b2be-40ef-8cdf-be3a27b16216/ listed=0: List::next started
       at src/layers/logging.rs:220
   
     2025-03-03T16:42:04.462376Z  INFO opendal::services::hdfs_native::backend: 
backend list started. path dc62cd36-b2be-40ef-8cdf-be3a27b16216/ p 
/tmp/opendal/a2045853-d659-43e0-ae94-76f79c917547/dc62cd36-b2be-40ef-8cdf-be3a27b16216/
       at src/services/hdfs_native/backend.rs:254
   
     2025-03-03T16:42:04.467877Z TRACE opendal::services: service=hdfs_native 
name= path=dc62cd36-b2be-40ef-8cdf-be3a27b16216/ listed=1 
entry=dc62cd36-b2be-40ef-8cdf-be3a27b16216/: List::next succeeded
   
   thread '<unnamed>' panicked at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/unfold.rs:108:21:
   Unfold must not be polled after it returned `Poll::Ready(None)`
   stack backtrace:
       at src/layers/logging.rs:220
   
     2025-03-03T16:42:04.467933Z TRACE opendal::services: service=hdfs_native 
name= path=dc62cd36-b2be-40ef-8cdf-be3a27b16216/ listed=1: List::next started
       at src/layers/logging.rs:220
   
      0: rust_begin_unwind
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:692:5
      1: core::panicking::panic_fmt
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:75:14
      2: core::panicking::panic
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:145:5
      3: <futures_util::stream::unfold::Unfold<T,F,Fut> as 
futures_core::stream::Stream>::poll_next
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/unfold.rs:108:21
      4: <core::pin::Pin<P> as futures_core::stream::Stream>::poll_next
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:130:9
      5: futures_util::stream::stream::StreamExt::poll_next_unpin
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/mod.rs:1638:9
      6: <futures_util::stream::stream::next::Next<St> as 
core::future::future::Future>::poll
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/next.rs:32:9
      7: <opendal::services::hdfs_native::lister::HdfsNativeLister as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/services/hdfs_native/lister.rs:60:34
      8: <core::option::Option<P> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/raw/oio/list/api.rs:46:33
      9: <opendal::layers::error_context::ErrorContextWrapper<T> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/layers/error_context.rs:424:14
     10: <opendal::raw::oio::list::flat_list::FlatLister<A,L> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/raw/oio/list/flat_list.rs:104:33
     11: <opendal::raw::enum_utils::FourWays<ONE,TWO,THREE,FOUR> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/raw/enum_utils.rs:224:38
     12: <core::pin::Pin<P> as core::future::future::Future>::poll
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/future/future.rs:124:9
     13: <alloc::boxed::Box<T> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/raw/oio/list/api.rs:64:37
     14: <opendal::layers::logging::LoggingLister<P,I> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/layers/logging.rs:1198:37
     15: <core::pin::Pin<P> as core::future::future::Future>::poll
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/future/future.rs:124:9
     16: <alloc::boxed::Box<T> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/raw/oio/list/api.rs:64:37
     17: <tokio::time::timeout::Timeout<T> as 
core::future::future::Future>::poll
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/time/timeout.rs:202:33
     18: opendal::layers::timeout::TimeoutWrapper<R>::io_timeout::{{closure}}
                at ./src/layers/timeout.rs:348:44
     19: <opendal::layers::timeout::TimeoutWrapper<R> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/layers/timeout.rs:384:82
     20: <core::pin::Pin<P> as core::future::future::Future>::poll
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/future/future.rs:124:9
     21: <alloc::boxed::Box<T> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/raw/oio/list/api.rs:64:37
     22: <opendal::layers::retry::RetryWrapper<P,I> as 
opendal::raw::oio::list::api::List>::next::{{closure}}::{{closure}}::{{closure}}
                at ./src/layers/retry.rs:707:36
     23: 
<backon::retry_with_context::RetryWithContext<B,T,E,Ctx,Fut,FutureFn,SF,RF,NF> 
as core::future::future::Future>::poll
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backon-1.3.0/src/retry_with_context.rs:327:45
     24: <opendal::layers::retry::RetryWrapper<P,I> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/layers/retry.rs:716:10
     25: <core::pin::Pin<P> as core::future::future::Future>::poll
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/future/future.rs:124:9
     26: <alloc::boxed::Box<T> as 
opendal::raw::oio::list::api::List>::next::{{closure}}
                at ./src/raw/oio/list/api.rs:64:37
     27: <core::pin::Pin<P> as core::future::future::Future>::poll
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/future/future.rs:124:9
     28: <opendal::types::list::Lister as 
futures_core::stream::Stream>::poll_next::{{closure}}
                at ./src/types/list.rs:70:45
     29: <opendal::types::list::Lister as 
futures_core::stream::Stream>::poll_next
                at ./src/types/list.rs:77:42
     30: <S as futures_core::stream::TryStream>::try_poll_next
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:206:9
     31: futures_util::stream::try_stream::TryStreamExt::try_poll_next_unpin
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/mod.rs:1131:9
     32: <futures_util::stream::try_stream::try_next::TryNext<St> as 
core::future::future::Future>::poll
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_next.rs:32:9
     33: behavior::async_list::test_list_empty_dir::{{closure}}
                at ./tests/behavior/async_list.rs:190:41
     34: tokio::runtime::park::CachedParkThread::block_on::{{closure}}
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/park.rs:281:63
     35: tokio::runtime::coop::with_budget
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/coop.rs:107:5
     36: tokio::runtime::coop::budget
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/coop.rs:73:5
     37: tokio::runtime::park::CachedParkThread::block_on
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/park.rs:281:31
     38: tokio::runtime::context::blocking::BlockingRegionGuard::block_on
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/context/blocking.rs:66:9
     39: tokio::runtime::handle::Handle::block_on_inner::{{closure}}
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/handle.rs:327:13
     40: tokio::runtime::context::runtime::enter_runtime
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/context/runtime.rs:65:16
     41: tokio::runtime::handle::Handle::block_on_inner
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/handle.rs:326:9
     42: tokio::runtime::handle::Handle::block_on
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.42.0/src/runtime/handle.rs:305:13
     43: behavior::utils::build_async_trial::{{closure}}
                at ./tests/behavior/utils.rs:71:9
     44: libtest_mimic::Trial::test::{{closure}}
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libtest-mimic-0.8.1/src/lib.rs:119:54
     45: core::ops::function::FnOnce::call_once{{vtable.shim}}
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/ops/function.rs:250:5
     46: <alloc::boxed::Box<F,A> as 
core::ops::function::FnOnce<Args>>::call_once
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/alloc/src/boxed.rs:1993:9
     47: libtest_mimic::run_single::{{closure}}
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libtest-mimic-0.8.1/src/lib.rs:576:43
     48: <core::panic::unwind_safe::AssertUnwindSafe<F> as 
core::ops::function::FnOnce<()>>::call_once
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panic/unwind_safe.rs:272:9
     49: std::panicking::try::do_call
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:584:40
     50: __rust_try
     51: std::panicking::try
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:547:19
     52: std::panic::catch_unwind
                at 
/rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panic.rs:358:14
     53: libtest_mimic::run_single
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libtest-mimic-0.8.1/src/lib.rs:576:5
     54: libtest_mimic::run::{{closure}}::{{closure}}
                at 
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libtest-mimic-0.8.1/src/lib.rs:531:43
   note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose 
backtrace.
   test behavior::test_list_empty_dir ... FAILED
   
   failures:
   
   ---- behavior::test_list_empty_dir ----
   test panicked: Unfold must not be polled after it returned 
`Poll::Ready(None)`
   ```


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to