gstreamer-pravega icon indicating copy to clipboard operation
gstreamer-pravega copied to clipboard

Panic on shutdown prevents flush

Open tkaitchuck opened this issue 3 years ago • 0 comments

When running the gstreamer plugin a user encountered this:

+++ dirname ./scripts/pravega-to-file.sh
++ readlink -f ./scripts/..
+ ROOT_DIR=/home/sumit/Pravega-Idea/gstreamer-pravega
+ pushd /home/sumit/Pravega-Idea/gstreamer-pravega/gst-plugin-pravega
~/Pravega-Idea/gstreamer-pravega/gst-plugin-pravega ~/Pravega-Idea/gstreamer-pravega
+ cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.29s
+ ls -lh /home/sumit/Pravega-Idea/gstreamer-pravega/target/debug/libgstpravega.so
-rwxrwxr-x 2 sumit sumit 325M May 16 07:56 /home/sumit/Pravega-Idea/gstreamer-pravega/target/debug/libgstpravega.so
+ export GST_PLUGIN_PATH=/home/sumit/Pravega-Idea/gstreamer-pravega/target/debug:
+ GST_PLUGIN_PATH=/home/sumit/Pravega-Idea/gstreamer-pravega/target/debug:
+ export GST_DEBUG=pravegasrc:LOG
+ GST_DEBUG=pravegasrc:LOG
+ export PRAVEGA_VIDEO_LOG=info
+ PRAVEGA_VIDEO_LOG=info
+ export RUST_BACKTRACE=1
+ RUST_BACKTRACE=1
+ PRAVEGA_CONTROLLER_URI=127.0.0.1:9090
+ PRAVEGA_SCOPE=examples
+ PRAVEGA_STREAM=split2
+ ALLOW_CREATE_SCOPE=true
+ OUTPUT_FILE=/home/sumit/split2.ts
+ gst-launch-1.0 -v pravegasrc stream=examples/split2 controller=127.0.0.1:9090 allow-create-scope=true '!' filesink location=/home/sumit/split2.ts sync=false
0:00:00.064894554  7847 0x557c06b36640 DEBUG             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:780:gstpravega::pravegasrc::imp:<pravegasrc0> query: BEGIN: query=Query { ptr: 0x557c06980c00, type: "caps", structure: Some(GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";) }
0:00:00.064972032  7847 0x557c06b36640 DEBUG             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:831:gstpravega::pravegasrc::imp:<pravegasrc0> query: END: result=true, query=Query { ptr: 0x557c06980c00, type: "caps", structure: Some(GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)ANY;) }
0:00:00.065034898  7847 0x557c06b36640 DEBUG             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:780:gstpravega::pravegasrc::imp:<pravegasrc0> query: BEGIN: query=Query { ptr: 0x557c06980ca0, type: "caps", structure: Some(GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";) }
0:00:00.065078946  7847 0x557c06b36640 DEBUG             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:831:gstpravega::pravegasrc::imp:<pravegasrc0> query: END: result=true, query=Query { ptr: 0x557c06980ca0, type: "caps", structure: Some(GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)ANY;) }
Setting pipeline to PAUSED ...
0:00:00.065343154  7847 0x557c06b36640 DEBUG             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:517:gstpravega::pravegasrc::imp:<pravegasrc0> start: BEGIN
0:00:00.065384665  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:535:gstpravega::pravegasrc::imp:<pravegasrc0> start: scope=examples, stream=split2, index_stream=split2-index
0:00:00.065426388  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:536:gstpravega::pravegasrc::imp:<pravegasrc0> start: start_mode=Earliest, end_mode=Unbounded
0:00:00.065455121  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:541:gstpravega::pravegasrc::imp:<pravegasrc0> start: controller=127.0.0.1:9090
0:00:00.065488100  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:543:gstpravega::pravegasrc::imp:<pravegasrc0> start: keycloak_file=None
0:00:00.065691583  7847 0x557c06b36640 DEBUG             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:547:gstpravega::pravegasrc::imp:<pravegasrc0> start: config=ClientConfig { max_connections_in_pool: 4294967295, max_controller_connections: 3, connection_type: Tokio, retry_policy: RetryWithBackoff { current: 1, base: 10, max_delay: Some(10s) }, controller_uri: PravegaNodeUri("127.0.0.1:9090"), transaction_timeout_time: 90000, mock: false, trustcert: "./ca-cert.crt", is_tls_enabled: false, credentials: Credentials { inner: Basic { method: "Basic", token: "Og==" } }, is_auth_enabled: false, reader_wrapper_buffer_size: 1048576, request_timeout: 30s }
0:00:00.065748272  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:548:gstpravega::pravegasrc::imp:<pravegasrc0> start: controller_uri=127.0.0.1:9090
0:00:00.065767384  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:549:gstpravega::pravegasrc::imp:<pravegasrc0> start: is_tls_enabled=false
0:00:00.065784903  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:550:gstpravega::pravegasrc::imp:<pravegasrc0> start: is_auth_enabled=false
0:00:00.067289934  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:557:gstpravega::pravegasrc::imp:<pravegasrc0> start: allow_create_scope=true
0:00:00.379170643  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:604:gstpravega::pravegasrc::imp:<pravegasrc0> start: Opened Pravega reader for data
0:00:00.389535994  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:612:gstpravega::pravegasrc::imp:<pravegasrc0> start: Opened Pravega reader for index
0:00:00.389593971  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:641:gstpravega::pravegasrc::imp:<pravegasrc0> start: end_offset=18446744073709551615
0:00:00.389790703  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:651:gstpravega::pravegasrc::imp:<pravegasrc0> start: Started
0:00:00.389842292  7847 0x557c06b36640 DEBUG             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:654:gstpravega::pravegasrc::imp:<pravegasrc0> start: END: result=Ok(())
0:00:00.390030387  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:680:gstpravega::pravegasrc::imp:<pravegasrc0> do_seek: BEGIN: segment=Segment { format: Time, start: "0:00:00.000000000", offset: "0:00:00.000000000", stop: "--:--:--.---------", rate: 1.0, applied_rate: 1.0, flags: (empty), time: "0:00:00.000000000", base: "0:00:00.000000000", position: "0:00:00.000000000", duration: "--:--:--.---------" }
0:00:00.390079707  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:730:gstpravega::pravegasrc::imp:<pravegasrc0> do_seek: initial_seek=true
0:00:00.390204092  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:739:gstpravega::pravegasrc::imp:<pravegasrc0> do_seek: seeking to timestamp=1970-01-01T00:00:00.000000000Z (0 ns, 0:00:00.000000000)
0:00:00.392529942  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:742:gstpravega::pravegasrc::imp:<pravegasrc0> do_seek: index_record=Err(Custom { kind: UnexpectedEof, error: "Index has no records" })
0:00:00.392783928  7847 0x557c06b36640 ERROR             pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:755:gstpravega::pravegasrc::imp:<pravegasrc0> do_seek: index is empty; segment=Segment { format: Time, start: "0:00:00.000000000", offset: "0:00:00.000000000", stop: "--:--:--.---------", rate: 1.0, applied_rate: 1.0, flags: (empty), time: "0:00:00.000000000", base: "0:00:00.000000000", position: "0:00:00.000000000", duration: "--:--:--.---------" }
0:00:00.392833127  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:775:gstpravega::pravegasrc::imp:<pravegasrc0> do_seek: END: result=false
0:00:00.393087436  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:836:gstpravega::pravegasrc::imp:<pravegasrc0> stop: BEGIN
0:00:00.393204443  7847 0x557c06b36640 INFO              pravegasrc gst-plugin-pravega/src/pravegasrc/imp.rs:848:gstpravega::pravegasrc::imp:<pravegasrc0> stop: END: result=Ok(())
ERROR: Pipeline doesn't want to pause.
thread 'tokio-runtime-worker' panicked at 'Cannot drop a runtime in a context where blocking is not allowed. This happens when a runtime is dropped from within an asynchronous context.', /home/sumit/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/runtime/blocking/shutdown.rs:51Setting pipeline to NULL ...
:21
stack backtrace:
Freeing pipeline ...

Tokio panicked becaused the Runtime was blocked in an async context. This prevented the flush and resulted in no output. Also submitted as: https://github.com/pravega/pravega-client-rust/issues/267

tkaitchuck avatar May 25 '21 20:05 tkaitchuck