Closed
Description
When running rustdoc on Servo’s style crate, it currently exists with task '<unknown>' has overflowed its stack
. Running it in gdb, the stack trace repeats these four lines a large number of times:
#100 0x00007ffff793300d in visit_ast::RustdocVisitor$LT$$x27a$GT$::visit_item::h868ff071f9f54492HFr ()
from /home/simon/tmp/servo-build/x86_64-unknown-linux-gnu/rust_snapshot/rust-0.12.0-pre-x86_64-unknown-linux-gnu/lib/librustdoc-4e7c5e5c.so
#101 0x00007ffff793802d in visit_ast::RustdocVisitor$LT$$x27a$GT$::resolve_id::hbba5c6cb8d56390bDCr ()
from /home/simon/tmp/servo-build/x86_64-unknown-linux-gnu/rust_snapshot/rust-0.12.0-pre-x86_64-unknown-linux-gnu/lib/librustdoc-4e7c5e5c.so
#102 0x00007ffff7931316 in visit_ast::RustdocVisitor$LT$$x27a$GT$::visit_view_item::h500efb8576c4bd72Cyr ()
from /home/simon/tmp/servo-build/x86_64-unknown-linux-gnu/rust_snapshot/rust-0.12.0-pre-x86_64-unknown-linux-gnu/lib/librustdoc-4e7c5e5c.so
#103 0x00007ffff792c960 in visit_ast::RustdocVisitor$LT$$x27a$GT$::visit_mod_contents::hfd92063fb62d99ackwr ()
from /home/simon/tmp/servo-build/x86_64-unknown-linux-gnu/rust_snapshot/rust-0.12.0-pre-x86_64-unknown-linux-gnu/lib/librustdoc-4e7c5e5c.so
Running it with RUST_LOG=rustdoc::visit_ast
after adding debug!()
lines in visit_mod_contents()
and resolve_id()
, this is a repeating pattern in the output after piping it through cut -d'"' -f 1-2
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "longhands
DEBUG:rustdoc::visit_ast: Visiting module Some("longhands
DEBUG:rustdoc::visit_ast: Resolve ID: 10021
DEBUG:rustdoc::visit_ast: Resolve ID: 8287
DEBUG:rustdoc::visit_ast: Resolve ID: 8295
DEBUG:rustdoc::visit_ast: Resolve ID: 8296
DEBUG:rustdoc::visit_ast: Resolve ID: 8297
DEBUG:rustdoc::visit_ast: Resolve ID: 8298
DEBUG:rustdoc::visit_ast: Resolve ID: 8302
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "one_component_value
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "get_ident_lower
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Resolve ID: 8303
DEBUG:rustdoc::visit_ast: Resolve ID: 8311
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "CSSFloat
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "DEFAULT_LINE_HEIGHT
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "specified
DEBUG:rustdoc::visit_ast: Visiting module Some("specified
DEBUG:rustdoc::visit_ast: Resolve ID: 8327
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Length
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Length.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_PX
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_IN
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_CM
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_MM
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_PT
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_PC
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Length
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "computed
DEBUG:rustdoc::visit_ast: Visiting module Some("computed
DEBUG:rustdoc::visit_ast: Resolve ID: 9115
DEBUG:rustdoc::visit_ast: Resolve ID: 9116
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "computed_as_specified
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Resolve ID: 9119
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Context
DEBUG:rustdoc::visit_ast: Visiting struct
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_Au
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_Au_with_font_size
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage.::std::cmp::PartialEq
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto.::std::cmp::PartialEq
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone.::std::cmp::PartialEq
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "parse_url
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Resolve ID: 8305
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "PropertyBitField
DEBUG:rustdoc::visit_ast: Visiting struct
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "common_types
DEBUG:rustdoc::visit_ast: Visiting module Some("common_types
DEBUG:rustdoc::visit_ast: Resolve ID: 8311
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "CSSFloat
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "DEFAULT_LINE_HEIGHT
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "specified
DEBUG:rustdoc::visit_ast: Visiting module Some("specified
DEBUG:rustdoc::visit_ast: Resolve ID: 8327
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Length
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Length.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_PX
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_IN
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_CM
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_MM
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_PT
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "AU_PER_PC
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Length
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "computed
DEBUG:rustdoc::visit_ast: Visiting module Some("computed
DEBUG:rustdoc::visit_ast: Resolve ID: 9115
DEBUG:rustdoc::visit_ast: Resolve ID: 9116
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "computed_as_specified
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Resolve ID: 9119
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "Context
DEBUG:rustdoc::visit_ast: Visiting struct
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_Au
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_Au_with_font_size
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentage.::std::cmp::PartialEq
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_LengthOrPercentage
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrAuto.::std::cmp::PartialEq
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_LengthOrPercentageOrAuto
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting enum
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone.::std::clone::Clone
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "LengthOrPercentageOrNone.::std::cmp::PartialEq
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "compute_LengthOrPercentageOrNone
DEBUG:rustdoc::visit_ast: Visiting fn
DEBUG:rustdoc::visit_ast: Visiting item Item { ident: "parse_url
DEBUG:rustdoc::visit_ast: Visiting fn
I don’t know how to go from here. I don’t really understand what’s going on in the above log.
CC: @eddyb