Skip to content

Infinite recursion in librustc::metadata::decoder #8707

Closed
@SimonSapin

Description

@SimonSapin

I’m working on a patch for Servo (commit c12c7a6) that only adds a bunch of code in its "script" crate. Servo before my patch builds fine. The same code in its own crate builds fine. The script crate itself with my code added builds fine. It’s only Servo’s "main" crate, which links against "script", that sends rust in an infinite loop.

gdb shows the stack trace below, except it goes to 3000 or so frames after a few minutes, and growing.

Rust version: rustc 0.8-pre (72b50e7 2013-08-16 01:56:16 -0700)
Colorized stack trace: http://pastebin.com/Tg7APRi2

#0  0x00007fc049d5095b in hashmap::__extensions__::bucket_for_key_with_hash_50288::anon::expr_fn_50301 ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#1  0x00007fc049d5055f in hashmap::__extensions__::bucket_sequence_50290::_f480b8be39c3ec7::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#2  0x00007fc049d5049b in hashmap::__extensions__::bucket_for_key_with_hash_50288::_1fab551126e8674a::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#3  0x00007fc049d503eb in hashmap::__extensions__::bucket_for_key_50286::_e8c863cbc639f::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#4  0x00007fc049d502f9 in hashmap::__extensions__::find_50283::_ebf445d0cf0c6b1::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#5  0x00007fc049d4e089 in middle::resolve::__extensions__::meth_50280::add_child::_9bc551b669fa7eeb::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#6  0x00007fc049d634af in middle::resolve::__extensions__::build_reduced_graph_for_external_crate::anon::expr_fn_50939 ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#7  0x00007fc04a527ae8 in metadata::decoder::__extensions__::meth_92212::process_item_and_pop_name::_ed3a72451bee9133::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#8  0x00007fc04a528da9 in metadata::decoder::__extensions__::each_child_of_module_or_crate::anon::expr_fn_92220 ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#9  0x00007fc04b07512a in ebml::reader::tagged_docs::_669199c64346a9a7::_0$x2e8$x2dpre ()
   from lib/libextra-a7c050cfd46b2c9a-0.8-pre.so
#10 0x00007fc04a52843f in metadata::decoder::__extensions__::meth_92217::each_child_of_module_or_crate::_10e45c12b3c2e244::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#11 0x00007fc04a5282e2 in metadata::decoder::__extensions__::meth_92215::each_item_of_module::_182d9722d1c9f691::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#12 0x00007fc04a527c4d in metadata::decoder::__extensions__::meth_92212::process_item_and_pop_name::_ed3a72451bee9133::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#13 0x00007fc04a528da9 in metadata::decoder::__extensions__::each_child_of_module_or_crate::anon::expr_fn_92220 ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#14 0x00007fc04b07512a in ebml::reader::tagged_docs::_669199c64346a9a7::_0$x2e8$x2dpre ()
   from lib/libextra-a7c050cfd46b2c9a-0.8-pre.so
#15 0x00007fc04a52843f in metadata::decoder::__extensions__::meth_92217::each_child_of_module_or_crate::_10e45c12b3c2e244::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#16 0x00007fc04a5282e2 in metadata::decoder::__extensions__::meth_92215::each_item_of_module::_182d9722d1c9f691::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#17 0x00007fc04a527c4d in metadata::decoder::__extensions__::meth_92212::process_item_and_pop_name::_ed3a72451bee9133::_0$x2e8$x2dpre ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so
#18 0x00007fc04a5295f8 in metadata::decoder::__extensions__::each_child_of_module_or_crate::anon::expr_fn_92222 ()
   from lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions