locka99 / opcua

A client and server implementation of the OPC UA specification written in Rust
Mozilla Public License 2.0
480 stars 129 forks source link

when a getter returns an error, the entire server crashes #172

Closed lovasoa closed 2 years ago

lovasoa commented 2 years ago

When a getter returns a value such as StatusCode::BadTypeMismatch, the entire OPCUA server crashes.

 'tokio-runtime-worker-6' panicked at 'called `Result::unwrap()` on an `Err` value: IS_ERROR | BadUnexpectedError | BadResourceUnavailable | BadCommunicationError | BadEncodingLimitsExceeded | BadUnknownResponse | BadShutdown | BadServerNotConnected | BadTcpMessageTooLarge | BadTcpNotEnoughResources | BadRequestInterrupted | BadRequestTimeout | BadSequenceNumberInvalid | BadConfigurationError | BadSensorFailure | BadOutOfService', /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/address_space/variable.rs:357:126
stack backtrace:
   0: rust_begin_unwind
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:498:5
   1: core::panicking::panic_fmt
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:107:14
   2: core::result::unwrap_failed
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/result.rs:1613:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/result.rs:1295:23
   4: opcua_server::address_space::variable::Variable::value
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/address_space/variable.rs:357:13
   5: <opcua_server::address_space::variable::Variable as opcua_server::address_space::node::Node>::get_attribute_max_age
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/address_space/variable.rs:172:40
   6: opcua_server::services::attribute::AttributeService::read_node_value
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/services/attribute.rs:363:49
   7: opcua_server::services::attribute::AttributeService::read::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/services/attribute.rs:75:21
   8: core::iter::adapters::map::map_fold::{{closure}}
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/iter/adapters/map.rs:84:28
   9: core::iter::traits::iterator::Iterator::fold
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/iter/traits/iterator.rs:2171:21
  10: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/iter/adapters/map.rs:124:9
  11: core::iter::traits::iterator::Iterator::for_each
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/iter/traits/iterator.rs:737:9
  12: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/alloc/src/vec/spec_extend.rs:40:17
  13: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/alloc/src/vec/spec_from_iter_nested.rs:56:9
  14: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/alloc/src/vec/spec_from_iter.rs:33:9
  15: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/alloc/src/vec/mod.rs:2549:9
  16: core::iter::traits::iterator::Iterator::collect
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/iter/traits/iterator.rs:1745:9
  17: opcua_server::services::attribute::AttributeService::read
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/services/attribute.rs:74:31
  18: opcua_server::services::message_handler::MessageHandler::handle_message::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/services/message_handler.rs:209:21
  19: opcua_server::services::message_handler::MessageHandler::validate_active_session_service_request
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/services/message_handler.rs:409:28
  20: opcua_server::services::message_handler::MessageHandler::handle_message
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/services/message_handler.rs:208:17
  21: opcua_server::comms::tcp_transport::TcpTransport::process_chunk
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/comms/tcp_transport.rs:895:40
  22: opcua_server::comms::tcp_transport::TcpTransport::framed_read_task::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/comms/tcp_transport.rs:487:42
  23: <futures::stream::for_each::ForEach<S,F,U> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/stream/for_each.rs:46:44
  24: <futures::future::map::Map<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map.rs:30:23
  25: <futures::future::map_err::MapErr<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map_err.rs:30:23
  26: futures::future::chain::Chain<A,B,C>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/chain.rs:26:23
  27: <futures::future::and_then::AndThen<A,B,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/and_then.rs:32:9
  28: <futures::future::map::Map<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map.rs:30:23
  29: <futures::future::map_err::MapErr<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map_err.rs:30:23
  30: <alloc::boxed::Box<F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/mod.rs:113:13
  31: futures::task_impl::Spawn<T>::poll_future_notify::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:329:45
  32: futures::task_impl::Spawn<T>::enter::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:399:27
  33: futures::task_impl::std::set
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/std/mod.rs:86:13
  34: futures::task_impl::Spawn<T>::enter
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:399:9
  35: futures::task_impl::Spawn<T>::poll_fn_notify
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:291:9
  36: futures::task_impl::Spawn<T>::poll_future_notify
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:329:9
  37: tokio_threadpool::task::Task::run::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/task/mod.rs:145:17
  38: core::ops::function::FnOnce::call_once
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ops/function.rs:227:5
  39: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panic/unwind_safe.rs:271:9
  40: std::panicking::try::do_call
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:406:40
  41: __rust_try
  42: std::panicking::try
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:370:19
  43: std::panic::catch_unwind
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panic.rs:133:14
  44: tokio_threadpool::task::Task::run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/task/mod.rs:130:19
  45: tokio_threadpool::worker::Worker::run_task2
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:567:9
  46: tokio_threadpool::worker::Worker::run_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:459:19
  47: tokio_threadpool::worker::Worker::try_steal_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:416:25
  48: tokio_threadpool::worker::Worker::try_run_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:301:9
  49: tokio_threadpool::worker::Worker::run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:241:16
  50: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:390:29
  51: tokio_timer::timer::handle::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.13/src/timer/handle.rs:74:5
  52: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:382:25
  53: tokio_timer::clock::clock::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.13/src/clock/clock.rs:125:5
  54: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:381:21
  55: tokio_reactor::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.12/src/lib.rs:220:5
  56: tokio::runtime::threadpool::builder::Builder::build::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:380:17
  57: tokio_threadpool::callback::Callback::call
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/callback.rs:22:9
  58: tokio_threadpool::worker::Worker::do_run::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:127:21
  59: tokio_executor::global::with_default::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.10/src/global.rs:221:9
  60: std::thread::local::LocalKey<T>::try_with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:399:16
  61: std::thread::local::LocalKey<T>::with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:375:9
  62: tokio_executor::global::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.10/src/global.rs:190:5
  63: tokio_threadpool::worker::Worker::do_run::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:125:13
  64: std::thread::local::LocalKey<T>::try_with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:399:16
  65: std::thread::local::LocalKey<T>::with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:375:9
  66: tokio_threadpool::worker::Worker::do_run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:116:9
  67: tokio_threadpool::pool::Pool::spawn_thread::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/pool/mod.rs:345:21
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'tokio-runtime-worker-7' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/comms/tcp_transport.rs:705:21
stack backtrace:
thread '  tokio-runtime-worker-4 ' panicked at '0called `Result::unwrap()` on an `Err` value: PoisonError { .. }: ', rust_begin_unwind/home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/comms/tcp_transport.rs
:             at 307:37/rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs
:498:5
   1: core::panicking::panic_fmt
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:107:14
   2: core::result::unwrap_failed
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/result.rs:1613:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/result.rs:1295:23
   4: opcua_server::comms::tcp_transport::TcpTransport::spawn_subscriptions_task::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/comms/tcp_transport.rs:705:21
   5: <futures::stream::take_while::TakeWhile<S,P,R> as futures::stream::Stream>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/stream/take_while.rs:93:34
   6: <futures::stream::for_each::ForEach<S,F,U> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/stream/for_each.rs:45:30
   7: <futures::future::map::Map<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map.rs:30:23
   8: <futures::future::map_err::MapErr<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map_err.rs:30:23
   9: <alloc::boxed::Box<F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/mod.rs:113:13
  10: futures::task_impl::Spawn<T>::poll_future_notify::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:329:45
  11: futures::task_impl::Spawn<T>::enter::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:399:27
  12: futures::task_impl::std::set
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/std/mod.rs:86:13
  13: futures::task_impl::Spawn<T>::enter
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:399:9
  14: futures::task_impl::Spawn<T>::poll_fn_notify
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:291:9
  15: futures::task_impl::Spawn<T>::poll_future_notify
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:329:9
  16: tokio_threadpool::task::Task::run::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/task/mod.rs:145:17
  17: core::ops::function::FnOnce::call_once
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ops/function.rs:227:5
  18: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panic/unwind_safe.rs:271:9
  19: std::panicking::try::do_call
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:406:40
  20: __rust_try
  21: std::panicking::try
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:370:19
  22: std::panic::catch_unwind
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panic.rs:133:14
  23: tokio_threadpool::task::Task::run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/task/mod.rs:130:19
  24: tokio_threadpool::worker::Worker::run_task2
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:567:9
  25: tokio_threadpool::worker::Worker::run_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:459:19
  26: tokio_threadpool::worker::Worker::try_steal_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:416:25
  27: tokio_threadpool::worker::Worker::try_run_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:301:9
  28: tokio_threadpool::worker::Worker::run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:241:16
  29: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:390:29
  30: tokio_timer::timer::handle::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.13/src/timer/handle.rs:74:5
  31: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:382:25
  32: tokio_timer::clock::clock::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.13/src/clock/clock.rs:125:5
  33: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:381:21
  34: tokio_reactor::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.12/src/lib.rs:220:5
  35: tokio::runtime::threadpool::builder::Builder::build::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:380:17
  36: tokio_threadpool::callback::Callback::call
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/callback.rs:22:9
  37: tokio_threadpool::worker::Worker::do_run::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:127:21
  38: tokio_executor::global::with_default::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.10/src/global.rs:221:9
  39: std::thread::local::LocalKey<T>::try_with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:399:16
  40: std::thread::local::LocalKey<T>::with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:375:9
  41: tokio_executor::global::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.10/src/global.rs:190:5
  42: tokio_threadpool::worker::Worker::do_run::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:125:13
  43: std::thread::local::LocalKey<T>::try_with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:399:16
  44: std::thread::local::LocalKey<T>::with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:375:9
  45: tokio_threadpool::worker::Worker::do_run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:116:9
  46: tokio_threadpool::pool::Pool::spawn_thread::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/pool/mod.rs:345:21
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: rust_begin_unwind
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:498:5
   1: core::panicking::panic_fmt
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:107:14
   2: core::result::unwrap_failed
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/result.rs:1613:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/result.rs:1295:23
   4: opcua_server::comms::tcp_transport::TcpTransport::spawn_finished_monitor_task::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/opcua-server-0.8.1/src/comms/tcp_transport.rs:307:37
   5: <futures::stream::take_while::TakeWhile<S,P,R> as futures::stream::Stream>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/stream/take_while.rs:93:34
   6: <futures::stream::for_each::ForEach<S,F,U> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/stream/for_each.rs:45:30
   7: <futures::future::map::Map<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map.rs:30:23
[2022-03-02T11:14:36Z INFO  opcua_server::comms::tcp_transport] Subscription receiver is finished
   8: <futures::future::map_err::MapErr<A,F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/map_err.rs:30:23
   9: <alloc::boxed::Box<F> as futures::future::Future>::poll
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/future/mod.rs:113:13
  10: futures::task_impl::Spawn<T>::poll_future_notify::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:329:45
  11: futures::task_impl::Spawn<T>::enter::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:399:27
  12: futures::task_impl::std::set
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/std/mod.rs:86:13
  13: futures::task_impl::Spawn<T>::enter
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:399:9
  14: futures::task_impl::Spawn<T>::poll_fn_notify
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:291:9
  15: futures::task_impl::Spawn<T>::poll_future_notify
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.31/src/task_impl/mod.rs:329:9
  16: tokio_threadpool::task::Task::run::{{closure}}
             at [2022-03-02T11:14:36Z INFO  opcua_server::comms::tcp_transport] Writer is finished
/home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/task/mod.rs:145:17
  17: core::ops::function::FnOnce::call_once
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ops/function.rs:227:5
  18: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panic/unwind_safe.rs:271:9
  19: std::panicking::try::do_call
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:406:40
  20: __rust_try
  21: std::panicking::try
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:370:19
  22: std::panic::catch_unwind
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panic.rs:133:14
  23: tokio_threadpool::task::Task::run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/task/mod.rs:130:19
  24: tokio_threadpool::worker::Worker::run_task2
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:567:9
  25: tokio_threadpool::worker::Worker::run_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:459:19
  26: tokio_threadpool::worker::Worker::try_steal_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:416:25
  27: tokio_threadpool::worker::Worker::try_run_task
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:301:9
  28: tokio_threadpool::worker::Worker::run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:241:16
  29: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:390:29
  30: tokio_timer::timer::handle::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.13/src/timer/handle.rs:74:5
  31: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:382:25
  32: tokio_timer::clock::clock::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.13/src/clock/clock.rs:125:5
  33: tokio::runtime::threadpool::builder::Builder::build::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:381:21
  34: tokio_reactor::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.12/src/lib.rs:220:5
  35: tokio::runtime::threadpool::builder::Builder::build::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.22/src/runtime/threadpool/builder.rs:380:17
  36: tokio_threadpool::callback::Callback::call
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/callback.rs:22:9
  37: tokio_threadpool::worker::Worker::do_run::{{closure}}::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:127:21
  38: tokio_executor::global::with_default::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.10/src/global.rs:221:9
  39: std::thread::local::LocalKey<T>::try_with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:399:16
  40: std::thread::local::LocalKey<T>::with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:375:9
  41: tokio_executor::global::with_default
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.10/src/global.rs:190:5
  42: tokio_threadpool::worker::Worker::do_run::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:125:13
  43: std::thread::local::LocalKey<T>::try_with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:399:16
  44: std::thread::local::LocalKey<T>::with
             at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/thread/local.rs:375:9
  45: tokio_threadpool::worker::Worker::do_run
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/worker/mod.rs:116:9
  46: tokio_threadpool::pool::Pool::spawn_thread::{{closure}}
             at /home/olojkine/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.18/src/pool/mod.rs:345:21
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

This seems to come from the following code in variable.rs that just unwraps the return value from the getter.

            value_getter.get(&self.node_id(), timestamps_to_return, AttributeId::Value, index_range, data_encoding, max_age).unwrap().unwrap()

I'm happy I caught this before actually using the server, but is there a documentation of the cases where the opcua intentionnally panics ?