oppiliappan / statix

lints and suggestions for the nix programming language
https://git.peppe.rs/languages/statix/about
MIT License
552 stars 21 forks source link

thread '<unnamed>' panicked at lib/src/lib.rs:111:18 #65

Closed manveru closed 1 year ago

manveru commented 1 year ago

I'M not sure what causes this, running statix on each .nix file independently doesn't panic, but doing so on the directory does. There's also some debug output that should be fixed by https://github.com/nerdypepper/statix/pull/60 so I don't think it's relevant.

$ RUST_BACKTRACE=full statix check .
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
thread '<unnamed>' panicked at 'report a bug, pepper forgot to handle a parse error', lib/src/lib.rs:111:18
stack backtrace:
   0:     0x56140554d09c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
   1:     0x56140557ec1e - core::fmt::write::ha076a7e65c6b1874
   2:     0x56140555f1e1 - std::io::Write::write_fmt::h9630bb3b0fe886f5
   3:     0x5614055670b5 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
   4:     0x561405566d12 - std::panicking::default_hook::h92625161492e6b48
   5:     0x5614055675d1 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
   6:     0x5614054cab5b - std::panicking::begin_panic::{{closure}}::h4d059ca817d6c6df
   7:     0x5614054cab24 - std::sys_common::backtrace::__rust_end_short_backtrace::h4ab22004f531b9ff
   8:     0x5614053bc4ba - std::panicking::begin_panic::h2eb13ba9e6a4bba5
   9:     0x5614054c3c6d - lib::Report::from_parse_err::h8c081eab22132497
  10:     0x5614053e196a - <core::iter::adapters::chain::Chain<A,B> as core::iter::traits::iterator::Iterator>::next::hb90f7780cf67fd73
  11:     0x5614053e8d47 - <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter::hd50ffdb0ac1db02f
  12:     0x5614053d54f6 - statix::lint::lint_with::ha5be777365fdfccb
  13:     0x5614053eebeb - rayon::iter::plumbing::Folder::consume_iter::h5b4dbd78d4649f4d
  14:     0x5614053ee6a0 - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  15:     0x5614053cf89d - rayon_core::job::StackJob<L,F,R>::run_inline::h587ad141ff928dc2
  16:     0x5614053c59e8 - rayon_core::registry::in_worker::hb29ff9a608069be3
  17:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  18:     0x5614053cf89d - rayon_core::job::StackJob<L,F,R>::run_inline::h587ad141ff928dc2
  19:     0x5614053c59e8 - rayon_core::registry::in_worker::hb29ff9a608069be3
  20:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  21:     0x5614053f9fb4 - std::panicking::try::hc2db50ef75b55d50
  22:     0x5614053c5958 - rayon_core::registry::in_worker::hb29ff9a608069be3
  23:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  24:     0x5614053f9fb4 - std::panicking::try::hc2db50ef75b55d50
  25:     0x5614053c5958 - rayon_core::registry::in_worker::hb29ff9a608069be3
  26:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  27:     0x5614053f9fb4 - std::panicking::try::hc2db50ef75b55d50
  28:     0x5614053c5958 - rayon_core::registry::in_worker::hb29ff9a608069be3
  29:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  30:     0x5614053cf89d - rayon_core::job::StackJob<L,F,R>::run_inline::h587ad141ff928dc2
  31:     0x5614053c59e8 - rayon_core::registry::in_worker::hb29ff9a608069be3
  32:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  33:     0x5614053f9fb4 - std::panicking::try::hc2db50ef75b55d50
  34:     0x5614053c5958 - rayon_core::registry::in_worker::hb29ff9a608069be3
  35:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  36:     0x5614053f9f07 - std::panicking::try::h1cf0be7f65475852
  37:     0x5614053d2e19 - <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute::h2b6b1e9c5a8ee7bd
  38:     0x5614053bafe8 - rayon_core::registry::WorkerThread::wait_until_cold::ha2783ad47279d811
  39:     0x5614053c5a25 - rayon_core::registry::in_worker::hb29ff9a608069be3
  40:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  41:     0x5614053f9f07 - std::panicking::try::h1cf0be7f65475852
  42:     0x5614053d2e19 - <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute::h2b6b1e9c5a8ee7bd
  43:     0x5614053bafe8 - rayon_core::registry::WorkerThread::wait_until_cold::ha2783ad47279d811
  44:     0x5614053c5a25 - rayon_core::registry::in_worker::hb29ff9a608069be3
  45:     0x5614053ee8cf - rayon::iter::plumbing::bridge_producer_consumer::helper::hc08540f1e5437935
  46:     0x5614053f9f07 - std::panicking::try::h1cf0be7f65475852
  47:     0x5614053d2e19 - <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute::h2b6b1e9c5a8ee7bd
  48:     0x5614053bafe8 - rayon_core::registry::WorkerThread::wait_until_cold::ha2783ad47279d811
  49:     0x5614054b8e70 - rayon_core::registry::ThreadBuilder::run::hfdb510d4c4dc36bd
  50:     0x5614054baaa1 - std::sys_common::backtrace::__rust_begin_short_backtrace::h70e3d732bb19dbe8
  51:     0x5614054bc0cd - core::ops::function::FnOnce::call_once{{vtable.shim}}::h02352fcc9a45e6c4
  52:     0x56140555fc53 - std::sys::unix::thread::Thread::new::thread_start::h1f2eb64c3e9233cd
  53:     0x7f2662c19e86 - start_thread
  54:     0x7f2662ca0c60 - __clone3
  55:                0x0 - <unknown>

$ fd -e nix -x statix check
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
[bin/src/config.rs:79] [self.ignore.as_slice(), extra_ignores].concat() = []
oppiliappan commented 1 year ago

as for the debug output, the fix has now landed on master, apologies for the delay. i see that a new kind of parse error has landed on rnix-parser, which is causing this bug, ill land a fix today!

oppiliappan commented 1 year ago

this fix for this is now on master!