-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
bugSomething isn't workingSomething isn't workingformatterRelated to the formatterRelated to the formatterfuzzerSurfaced via fuzzing.Surfaced via fuzzing.
Description
File content(at the bottom should be attached raw, not formatted file - github removes some non-printable characters, so copying from here may not work):
from y import(e as#
r)
command
timeout -v 300 ruff format TEST___FILE.py
cause this
warning: Detected debug build without --no-cache.
error: Panicked while formatting /opt/BROKEN_FILES_DIR/599_IDX_0_RAND_1511437192090215324352378_minimized_389.py: This indicates a bug in Ruff. If you could open an issue at:
https://github.com/astral-sh/ruff/issues/new?title=%5BFormatter%20panic%5D
...with the relevant file contents, the `pyproject.toml` settings, and the following stack trace, we'd be very appreciative!
panicked at crates/ruff_python_formatter/src/lib.rs:80:13:
The node has dangling comments that need to be formatted manually. Add the special dangling comments handling to `fmt_fields`.
Backtrace: 0: ruff_db::panic::install_hook::{{closure}}::{{closure}}
at ./ruff-main/crates/ruff_db/src/panic.rs:91:34
1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/alloc/src/boxed.rs:1980:9
2: std::panicking::rust_panic_with_hook
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panicking.rs:841:13
3: std::panicking::begin_panic_handler::{{closure}}
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panicking.rs:699:13
4: std::sys::backtrace::__rust_end_short_backtrace
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/sys/backtrace.rs:168:18
5: __rustc::rust_begin_unwind
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panicking.rs:697:5
6: core::panicking::panic_fmt
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/core/src/panicking.rs:75:14
7: ruff_python_formatter::FormatNodeRule::fmt
at ./ruff-main/crates/ruff_python_formatter/src/lib.rs:80:13
8: ruff_python_formatter::generated::<impl ruff_formatter::FormatRule<ruff_python_ast::nodes::Alias,ruff_python_formatter::context::PyFormatContext> for ruff_python_formatter::other::alias::FormatAlias>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/generated.rs:2800:9
9: <ruff_formatter::FormatRefWithRule<T,R,C> as ruff_formatter::Format<C>>::fmt
at ./ruff-main/crates/ruff_formatter/src/lib.rs:746:19
10: ruff_python_formatter::builders::JoinCommaSeparatedBuilder::entry_with_line_separator::{{closure}}
at ./ruff-main/crates/ruff_python_formatter/src/builders.rs:175:21
11: core::result::Result<T,E>::and_then
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1411:22
12: ruff_python_formatter::builders::JoinCommaSeparatedBuilder::entry_with_line_separator
at ./ruff-main/crates/ruff_python_formatter/src/builders.rs:168:35
13: ruff_python_formatter::builders::JoinCommaSeparatedBuilder::entry
at ./ruff-main/crates/ruff_python_formatter/src/builders.rs:155:14
14: ruff_python_formatter::builders::JoinCommaSeparatedBuilder::entries
at ./ruff-main/crates/ruff_python_formatter/src/builders.rs:188:18
15: <ruff_python_formatter::statement::stmt_import_from::FormatStmtImportFrom as ruff_python_formatter::FormatNodeRule<ruff_python_ast::generated::StmtImportFrom>>::fmt_fields::{{closure}}
at ./ruff-main/crates/ruff_python_formatter/src/statement/stmt_import_from.rs:53:18
16: <ruff_formatter::builders::FormatWith<Context,T> as ruff_formatter::Format<Context>>::fmt
at ./ruff-main/crates/ruff_formatter/src/builders.rs:2259:9
17: ruff_formatter::arguments::Argument<Context>::format
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:29:20
18: <ruff_formatter::formatter::Formatter<Context> as ruff_formatter::buffer::Buffer>::write_fmt
at ./ruff-main/crates/ruff_formatter/src/formatter.rs:220:22
19: <ruff_formatter::arguments::Arguments<Context> as ruff_formatter::Format<Context>>::fmt
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:81:19
20: ruff_formatter::arguments::Argument<Context>::format
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:29:20
21: <ruff_formatter::formatter::Formatter<Context> as ruff_formatter::buffer::Buffer>::write_fmt
at ./ruff-main/crates/ruff_formatter/src/formatter.rs:220:22
22: ruff_formatter::buffer::Recording<B>::write_fmt
at ./ruff-main/crates/ruff_formatter/src/buffer.rs:646:21
23: <ruff_formatter::builders::BlockIndent<Context> as ruff_formatter::Format<Context>>::fmt
at ./ruff-main/crates/ruff_formatter/src/builders.rs:1215:23
24: <ruff_python_formatter::builders::ParenthesizeIfExpands as ruff_formatter::Format<ruff_python_formatter::context::PyFormatContext>>::fmt::{{closure}}
at ./ruff-main/crates/ruff_python_formatter/src/builders.rs:42:74
25: <ruff_formatter::builders::FormatWith<Context,T> as ruff_formatter::Format<Context>>::fmt
at ./ruff-main/crates/ruff_formatter/src/builders.rs:2259:9
26: ruff_formatter::arguments::Argument<Context>::format
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:29:20
27: <ruff_formatter::formatter::Formatter<Context> as ruff_formatter::buffer::Buffer>::write_fmt
at ./ruff-main/crates/ruff_formatter/src/formatter.rs:220:22
28: <ruff_formatter::arguments::Arguments<Context> as ruff_formatter::Format<Context>>::fmt
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:81:19
29: <ruff_formatter::builders::Group<Context> as ruff_formatter::Format<Context>>::fmt
at ./ruff-main/crates/ruff_formatter/src/builders.rs:1438:40
30: ruff_formatter::arguments::Argument<Context>::format
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:29:20
31: <ruff_formatter::formatter::Formatter<Context> as ruff_formatter::buffer::Buffer>::write_fmt
at ./ruff-main/crates/ruff_formatter/src/formatter.rs:220:22
32: <ruff_python_formatter::builders::ParenthesizeIfExpands as ruff_formatter::Format<ruff_python_formatter::context::PyFormatContext>>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/builders.rs:36:13
33: <ruff_python_formatter::statement::stmt_import_from::FormatStmtImportFrom as ruff_python_formatter::FormatNodeRule<ruff_python_ast::generated::StmtImportFrom>>::fmt_fields
at ./ruff-main/crates/ruff_python_formatter/src/statement/stmt_import_from.rs:68:45
34: ruff_python_formatter::FormatNodeRule::fmt
at ./ruff-main/crates/ruff_python_formatter/src/lib.rs:78:18
35: ruff_python_formatter::generated::<impl ruff_formatter::FormatRule<ruff_python_ast::generated::StmtImportFrom,ruff_python_formatter::context::PyFormatContext> for ruff_python_formatter::statement::stmt_import_from::FormatStmtImportFrom>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/generated.rs:662:9
36: <ruff_formatter::FormatRefWithRule<T,R,C> as ruff_formatter::Format<C>>::fmt
at ./ruff-main/crates/ruff_formatter/src/lib.rs:746:19
37: <ruff_python_formatter::statement::FormatStmt as ruff_formatter::FormatRule<ruff_python_ast::generated::Stmt,ruff_python_formatter::context::PyFormatContext>>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/statement/mod.rs:58:47
38: <ruff_formatter::FormatRefWithRule<T,R,C> as ruff_formatter::Format<C>>::fmt
at ./ruff-main/crates/ruff_formatter/src/lib.rs:746:19
39: <ruff_python_formatter::statement::suite::SuiteChildStatement as ruff_formatter::Format<ruff_python_formatter::context::PyFormatContext>>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/statement/suite.rs:914:73
40: <ruff_python_formatter::statement::suite::FormatSuite as ruff_formatter::FormatRule<alloc::vec::Vec<ruff_python_ast::generated::Stmt>,ruff_python_formatter::context::PyFormatContext>>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/statement/suite.rs:172:19
41: <ruff_formatter::FormatRefWithRule<T,R,C> as ruff_formatter::Format<C>>::fmt
at ./ruff-main/crates/ruff_formatter/src/lib.rs:746:19
42: ruff_formatter::arguments::Argument<Context>::format
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:29:20
43: <ruff_formatter::formatter::Formatter<Context> as ruff_formatter::buffer::Buffer>::write_fmt
at ./ruff-main/crates/ruff_formatter/src/formatter.rs:220:22
44: <ruff_python_formatter::module::mod_module::FormatModModule as ruff_python_formatter::FormatNodeRule<ruff_python_ast::generated::ModModule>>::fmt_fields
at ./ruff-main/crates/ruff_python_formatter/src/module/mod_module.rs:30:13
45: ruff_python_formatter::FormatNodeRule::fmt
at ./ruff-main/crates/ruff_python_formatter/src/lib.rs:78:18
46: ruff_python_formatter::generated::<impl ruff_formatter::FormatRule<ruff_python_ast::generated::ModModule,ruff_python_formatter::context::PyFormatContext> for ruff_python_formatter::module::mod_module::FormatModModule>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/generated.rs:14:9
47: <ruff_formatter::FormatRefWithRule<T,R,C> as ruff_formatter::Format<C>>::fmt
at ./ruff-main/crates/ruff_formatter/src/lib.rs:746:19
48: <ruff_python_formatter::module::FormatMod as ruff_formatter::FormatRule<ruff_python_ast::generated::Mod,ruff_python_formatter::context::PyFormatContext>>::fmt
at ./ruff-main/crates/ruff_python_formatter/src/module/mod.rs:15:42
49: <ruff_formatter::FormatRefWithRule<T,R,C> as ruff_formatter::Format<C>>::fmt
at ./ruff-main/crates/ruff_formatter/src/lib.rs:746:19
50: ruff_formatter::arguments::Argument<Context>::format
at ./ruff-main/crates/ruff_formatter/src/arguments.rs:29:20
51: <ruff_formatter::formatter::Formatter<Context> as ruff_formatter::buffer::Buffer>::write_fmt
at ./ruff-main/crates/ruff_formatter/src/formatter.rs:220:22
52: ruff_formatter::write
at ./ruff-main/crates/ruff_formatter/src/lib.rs:860:7
53: ruff_formatter::buffer::Buffer::write_fmt
at ./ruff-main/crates/ruff_formatter/src/buffer.rs:59:9
54: ruff_formatter::format
at ./ruff-main/crates/ruff_formatter/src/lib.rs:909:12
55: ruff_python_formatter::format_node
at ./ruff-main/crates/ruff_python_formatter/src/lib.rs:154:21
56: ruff_python_formatter::format_module_ast
at ./ruff-main/crates/ruff_python_formatter/src/lib.rs:138:5
57: ruff_python_formatter::format_module_source
at ./ruff-main/crates/ruff_python_formatter/src/lib.rs:128:21
58: ruff::commands::format::format_source
at ./ruff-main/crates/ruff/src/commands/format.rs:366:17
59: ruff::commands::format::format_path
at ./ruff-main/crates/ruff/src/commands/format.rs:276:31
60: ruff::commands::format::format::{{closure}}::{{closure}}
at ./ruff-main/crates/ruff/src/commands/format.rs:148:29
61: std::panicking::catch_unwind::do_call
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
62: __rust_try
63: std::panicking::catch_unwind
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
64: std::panic::catch_unwind
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
65: ruff_db::panic::catch_unwind
at ./ruff-main/crates/ruff_db/src/panic.rs:122:18
66: ruff::commands::format::format::{{closure}}
at ./ruff-main/crates/ruff/src/commands/format.rs:147:31
67: <rayon::iter::filter_map::FilterMapFolder<C,P> as rayon::iter::plumbing::Folder<T>>::consume
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/filter_map.rs:123:36
68: rayon::iter::plumbing::Folder::consume_iter
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/plumbing/mod.rs:178:25
69: rayon::iter::plumbing::Producer::fold_with
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/plumbing/mod.rs:109:16
70: rayon::iter::plumbing::bridge_producer_consumer::helper
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/plumbing/mod.rs:437:22
71: rayon::iter::plumbing::bridge_producer_consumer
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/plumbing/mod.rs:396:12
72: <rayon::iter::plumbing::bridge::Callback<C> as rayon::iter::plumbing::ProducerCallback<I>>::callback
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/plumbing/mod.rs:372:13
73: <rayon::slice::Iter<T> as rayon::iter::IndexedParallelIterator>::with_producer
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/slice/mod.rs:826:18
74: rayon::iter::plumbing::bridge
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/plumbing/mod.rs:356:21
75: <rayon::slice::Iter<T> as rayon::iter::ParallelIterator>::drive_unindexed
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/slice/mod.rs:802:9
76: <rayon::iter::filter_map::FilterMap<I,P> as rayon::iter::ParallelIterator>::drive_unindexed
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/filter_map.rs:46:19
77: <rayon::iter::unzip::UnzipB<I,OP,CA> as rayon::iter::ParallelIterator>::drive_unindexed
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/unzip.rs:271:32
78: rayon::iter::extend::<impl rayon::iter::ParallelExtend<T> for alloc::vec::Vec<T>>::par_extend
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/extend.rs:588:37
79: <rayon::iter::unzip::UnzipA<I,OP,FromB> as rayon::iter::ParallelIterator>::drive_unindexed
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/unzip.rs:221:20
80: rayon::iter::extend::<impl rayon::iter::ParallelExtend<T> for alloc::vec::Vec<T>>::par_extend
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/extend.rs:588:37
81: rayon::iter::unzip::execute_into
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/unzip.rs:54:7
82: rayon::iter::unzip::execute
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/unzip.rs:38:5
83: rayon::iter::unzip::partition_map
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/unzip.rs:164:5
84: rayon::iter::ParallelIterator::partition_map
at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.10.0/src/iter/mod.rs:2196:9
85: ruff::commands::format::format
at ./ruff-main/crates/ruff/src/commands/format.rs:171:10
86: ruff::format
at ./ruff-main/crates/ruff/src/lib.rs:211:9
87: ruff::run
at ./ruff-main/crates/ruff/src/lib.rs:199:34
88: ruff::main
at ./ruff-main/crates/ruff/src/main.rs:45:11
89: core::ops::function::FnOnce::call_once
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
90: std::sys::backtrace::__rust_begin_short_backtrace
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:152:18
91: std::rt::lang_start::{{closure}}
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:206:18
92: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/core/src/ops/function.rs:284:21
93: std::panicking::catch_unwind::do_call
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panicking.rs:589:40
94: std::panicking::catch_unwind
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panicking.rs:552:19
95: std::panic::catch_unwind
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panic.rs:359:14
96: std::rt::lang_start_internal::{{closure}}
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/rt.rs:175:24
97: std::panicking::catch_unwind::do_call
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panicking.rs:589:40
98: std::panicking::catch_unwind
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panicking.rs:552:19
99: std::panic::catch_unwind
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/panic.rs:359:14
100: std::rt::lang_start_internal
at /rustc/6677875279b560442a07a08d5119b4cd6b3c5593/library/std/src/rt.rs:171:5
101: std::rt::lang_start
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:205:5
102: <unknown>
103: __libc_start_main
104: _start
##### Automatic Fuzzer note, output status "Some(2)", output signal "None"
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingformatterRelated to the formatterRelated to the formatterfuzzerSurfaced via fuzzing.Surfaced via fuzzing.