Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Panic: calls to push_pos() in states that don't end up emitting events #29

Closed
djrodgerspryor opened this issue Oct 5, 2024 · 0 comments

Comments

@djrodgerspryor
Copy link

djrodgerspryor commented Oct 5, 2024

I ran into a dev mode panic when parsing some XML via yaserde (using the latest version: 0.8.22).

[FATAL][panic] thread 'main' panicked at 'You've found a bug in xml-rs, caused by calls to push_pos() in states that don't end up emitting events.
            This case is ignored in release mode, and merely causes document positions to be out of sync.
            Please file a bug and include the XML document that triggers this assert.': /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xml-rs-0.8.22/src/reader/parser/outside_tag.rs:109
   0: backtrace::backtrace::libunwind::trace
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/libunwind.rs:93:5
      backtrace::backtrace::trace_unsynchronized
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:66:5
   1: backtrace::backtrace::trace
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:53:14
   2: backtrace::capture::Backtrace::create
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:176:9
   3: backtrace::capture::Backtrace::new
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:140:22
   4: <backtrace::capture::Backtrace as core::default::Default>::default
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:410:9
   5: log_panics::Config::install_panic_hook::{{closure}}
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-panics-2.1.0/src/lib.rs:115:29
   6: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2034:9
      std::panicking::rust_panic_with_hook
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:783:13
   7: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:649:13
   8: std::sys_common::backtrace::__rust_end_short_backtrace
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:171:18
   9: rust_begin_unwind
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:645:5
  10: core::panicking::panic_fmt
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:72:14
  11: xml::reader::parser::PullParser::push_pos
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xml-rs-0.8.22/src/reader/parser.rs:424:9
  12: xml::reader::parser::outside_tag::<impl xml::reader::parser::PullParser>::outside_tag
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xml-rs-0.8.22/src/reader/parser/outside_tag.rs:109:21
  13: xml::reader::parser::PullParser::dispatch_token
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xml-rs-0.8.22/src/reader/parser.rs:439:54
  14: xml::reader::parser::PullParser::next
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xml-rs-0.8.22/src/reader/parser.rs:352:36
  15: xml::reader::EventReader<R>::next
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xml-rs-0.8.22/src/reader.rs:53:9
  16: yaserde::de::Deserializer<R>::inner_next
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/yaserde-0.11.1/src/de/mod.rs:57:13
  17: yaserde::de::Deserializer<R>::peek
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/yaserde-0.11.1/src/de/mod.rs:45:26
  18: autocast::collections::in_the_pipeline::_IMPL_YA_DESERIALIZE_FOR_Item::<impl yaserde::YaDeserialize for autocast::collections::in_the_pipeline::Item>::deserialize::{{closure}}
             at src/collections/in_the_pipeline.rs:144:55
  19: yaserde::de::Deserializer<R>::read_inner_value
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/yaserde-0.11.1/src/de/mod.rs:111:20
  20: autocast::collections::in_the_pipeline::_IMPL_YA_DESERIALIZE_FOR_Item::<impl yaserde::YaDeserialize for autocast::collections::in_the_pipeline::Item>::deserialize
             at src/collections/in_the_pipeline.rs:144:55
  21: autocast::collections::in_the_pipeline::_IMPL_YA_DESERIALIZE_FOR_Feed::<impl yaserde::YaDeserialize for autocast::collections::in_the_pipeline::Feed>::deserialize
             at src/collections/in_the_pipeline.rs:138:55
  22: yaserde::de::from_reader
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/yaserde-0.11.1/src/de/mod.rs:14:3
  23: yaserde::de::from_str
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/yaserde-0.11.1/src/de/mod.rs:10:3
  24: autocast::collections::in_the_pipeline::get_collection::{{closure}}
             at src/collections/in_the_pipeline.rs:39:22
  25: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/future/future.rs:123:9
  26: autocast::main::{{closure}}::{{closure}}::{{closure}}
             at src/main.rs:50:48
  27: <futures_util::stream::stream::for_each::ForEach<St,Fut,F> as core::future::future::Future>::poll
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/stream/stream/for_each.rs:68:24
  28: autocast::main::{{closure}}
             at src/main.rs:221:10
  29: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/future/future.rs:123:9
  30: tokio::runtime::park::CachedParkThread::block_on::{{closure}}
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/park.rs:281:63
  31: tokio::runtime::coop::with_budget
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:107:5
      tokio::runtime::coop::budget
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:73:5
      tokio::runtime::park::CachedParkThread::block_on
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/park.rs:281:31
  32: tokio::runtime::context::blocking::BlockingRegionGuard::block_on
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context/blocking.rs:66:9
  33: tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/multi_thread/mod.rs:87:13
  34: tokio::runtime::context::runtime::enter_runtime
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context/runtime.rs:65:16
  35: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/multi_thread/mod.rs:86:9
  36: tokio::runtime::runtime::Runtime::block_on_inner
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/runtime.rs:363:45
  37: tokio::runtime::runtime::Runtime::block_on
             at /Users/drp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/runtime.rs:333:13
  38: autocast::main
             at src/main.rs:224:5
  39: core::ops::function::FnOnce::call_once
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
  40: std::sys_common::backtrace::__rust_begin_short_backtrace
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:155:18
  41: std::rt::lang_start::{{closure}}
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:166:18
  42: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:284:13
      std::panicking::try::do_call
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
      std::panicking::try
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
      std::panic::catch_unwind
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
      std::rt::lang_start_internal::{{closure}}
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:148:48
      std::panicking::try::do_call
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
      std::panicking::try
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
      std::panic::catch_unwind
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
      std::rt::lang_start_internal
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:148:20
  43: std::rt::lang_start
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/rt.rs:165:17
  44: _main

The input was a modified version of the RSS feed from https://www.science.org/blogs/pipeline/feed

It's pretty large, so here's a gist: https://gist.githubusercontent.com/djrodgerspryor/62705c7c1c3070fa4c3a1d289c430ba2/raw/98a04923dd7dd15573814cadf50672a8b49d0040/data.xml

@djrodgerspryor djrodgerspryor changed the title Calls to push_pos() in states that don't end up emitting events Panic: calls to push_pos() in states that don't end up emitting events Oct 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant