Skip to content

Crash on Win7 x86_64 #70

Description

@kiljacken

Racer crashes using the latest x86_64 nightly.

Version info:
$ rustc --version
rustc 0.13.0-nightly (e09d98603 2014-11-18 23:51:43 +0000)

The (quite vague) crash output:
$ racer complete std::io::

task '<main>' has overflowed its stack

It should be noted that code doesn't compile on this nightly due to rust-lang/rust#18645

Activity

  1. ebfe commented on Nov 19, 2014

    @ebfe
    Contributor

    Same on linux.

    Backtrace:

    task '

    ' has overflowed its stack

    Program received signal SIGILL, Illegal instruction.
    0x00007ffff6773fbe in rust_stack_exhausted () from /usr/lib/librustrt-4e7c5e5c.so
    (gdb) bt
    #0  0x00007ffff6773fbe in rust_stack_exhausted () from /usr/lib/librustrt-4e7c5e5c.so
    #1  0x00007ffff6db3de9 in ?? () from /usr/lib/libstd-4e7c5e5c.so
    #2  0x00007ffff67c2684 in fmt::Formatter$LT$$x27a$GT$::pad::h0e8123d27493eac9jGA () from /usr/lib/librustrt-4e7c5e5c.so
    #3  0x00007ffff67b9d3a in fmt::str.Show::fmt::h8c937b0cffc32057oYA () from /usr/lib/librustrt-4e7c5e5c.so
    #4  0x000055555556527d in fmt::_$BP$$x27a$x20T.Show::fmt::h17958754004638651362 ()
    #5  0x00007ffff67c1dd2 in fmt::write::h63b31407722e79700vA () from /usr/lib/librustrt-4e7c5e5c.so
    #6  0x00007ffff67c1c0b in fmt::Arguments$LT$$x27a$GT$.Show::fmt::h782249ace03efb68gsA () from /usr/lib/librustrt-4e7c5e5c.so
    #7  0x00007ffff67c1dd2 in fmt::write::h63b31407722e79700vA () from /usr/lib/librustrt-4e7c5e5c.so
    #8  0x00007ffff6d4c688 in fmt::format::h74df8dde596998cfgdp () from /usr/lib/libstd-4e7c5e5c.so
    #9  0x00005555556ea9e5 in racer::racer::matchers::match_extern_crate (msrc=..., blobstart=6802, blobend=6818, searchstr=..., filepath=0x7ffff4837c80, search_type=ExactMatch) at src/racer/matchers.rs:3
    #10 0x00005555556d5e89 in racer::racer::matchers::match_types (src=..., blobstart=6802, blobend=6818, searchstr=..., filepath=0x7ffff4837c80, search_type=ExactMatch, local=true) at src/racer/matchers.rs:25
    #11 0x00005555556d20c9 in racer::racer::nameres::search_scope (point=0, src=..., pathseg=0x7ffff4837ca8, filepath=0x7ffff4837c80, search_type=ExactMatch, local=true, namespace=TypeNamespace)
        at src/racer/nameres.rs:487
    #12 0x00005555556d8c79 in racer::racer::nameres::search_local_scopes (pathseg=0x7ffff4837ca8, filepath=0x7ffff4837c80, msrc=..., point=0, search_type=ExactMatch, namespace=TypeNamespace)
        at src/racer/nameres.rs:537
    #13 0x00005555556dcf7b in fn"fn"(16552) () at src/racer/nameres.rs:713
    #14 0x00005555556dce5d in fn"fn"(16539) (p={struct MoveItems<racer::racer::Match> (void)} 0x7fffffe0daa0) at src/racer/util.rs:175
    #15 0x00005555556dfe05 in iter::FlatMap$LT$$x27a$C$$x20A$C$$x20T$C$$x20U$GT$.Iterator$LT$B$GT$::next::closure.16666 ()
    #16 0x00005555556df987 in option::Option$LT$T$GT$::map::h13519551999946035702 ()
    #17 0x00005555556df625 in iter::FlatMap$LT$$x27a$C$$x20A$C$$x20T$C$$x20U$GT$.Iterator$LT$B$GT$::next::h9730528452447441402 ()
    #18 0x00005555556dff1c in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h14690182140726863152 ()
    #19 0x00005555556df3ac in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h1712331297869611141 ()
    #20 0x00005555556de5fc in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h16619676519180759352 ()
    #21 0x00005555556de561 in racer::racer::nameres::WrappedIter<T>.MatchIter::next_match (self=0x7ffff489e400) at src/racer/nameres.rs:642
    #22 0x00005555556bec96 in racer::racer::nameres::Box<MatchIter+ 'static>.Iterator<Match>::next (self=0x7fffffe0e9a0) at src/racer/nameres.rs:633
    #23 0x00005555556beb70 in iter::Iterator::nth::h18321729594562669831 ()
    #24 0x00005555556bf16e in racer::racer::nameres::resolve_path (path=0x7fffffe0f950, filepath=0x7ffff4837be0, pos=0, search_type=ExactMatch, namespace=BothNamespaces) at src/racer/nameres.rs:762
    #25 0x00005555556f1bf0 in racer::racer::matchers::match_use (msrc=..., blobstart=6846, blobend=6873, searchstr=..., filepath=0x7ffff4837be0, search_type=ExactMatch, local=true) at src/racer/matchers.rs:520
    #26 0x00005555556d6572 in racer::racer::matchers::match_types (src=..., blobstart=6846, blobend=6873, searchstr=..., filepath=0x7ffff4837be0, search_type=ExactMatch, local=true) at src/racer/matchers.rs:37
    #27 0x00005555556d20c9 in racer::racer::nameres::search_scope (point=0, src=..., pathseg=0x7ffff4837c08, filepath=0x7ffff4837be0, search_type=ExactMatch, local=true, namespace=TypeNamespace)
        at src/racer/nameres.rs:487
    #28 0x00005555556d8c79 in racer::racer::nameres::search_local_scopes (pathseg=0x7ffff4837c08, filepath=0x7ffff4837be0, msrc=..., point=0, search_type=ExactMatch, namespace=TypeNamespace)
        at src/racer/nameres.rs:537
    #29 0x00005555556dcf7b in fn"fn"(16552) () at src/racer/nameres.rs:713
    #30 0x00005555556dce5d in fn"fn"(16539) (p={struct MoveItems<racer::racer::Match> (void)} 0x7fffffe148a0) at src/racer/util.rs:175
    #31 0x00005555556dfe05 in iter::FlatMap$LT$$x27a$C$$x20A$C$$x20T$C$$x20U$GT$.Iterator$LT$B$GT$::next::closure.16666 ()
    #32 0x00005555556df987 in option::Option$LT$T$GT$::map::h13519551999946035702 ()
    #33 0x00005555556df625 in iter::FlatMap$LT$$x27a$C$$x20A$C$$x20T$C$$x20U$GT$.Iterator$LT$B$GT$::next::h9730528452447441402 ()
    #34 0x00005555556dff1c in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h14690182140726863152 ()
    #35 0x00005555556df3ac in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h1712331297869611141 ()
    #36 0x00005555556de5fc in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h16619676519180759352 ()
    #37 0x00005555556de561 in racer::racer::nameres::WrappedIter<T>.MatchIter::next_match (self=0x7ffff489e180) at src/racer/nameres.rs:642
    #38 0x00005555556bec96 in racer::racer::nameres::Box<MatchIter+ 'static>.Iterator<Match>::next (self=0x7fffffe157a0) at src/racer/nameres.rs:633
    #39 0x00005555556beb70 in iter::Iterator::nth::h18321729594562669831 ()
    #40 0x00005555556bf16e in racer::racer::nameres::resolve_path (path=0x7fffffe16750, filepath=0x7ffff4837b40, pos=0, search_type=ExactMatch, namespace=BothNamespaces) at src/racer/nameres.rs:762
    #41 0x00005555556f1bf0 in racer::racer::matchers::match_use (msrc=..., blobstart=6846, blobend=6873, searchstr=..., filepath=0x7ffff4837b40, search_type=ExactMatch, local=true) at src/racer/matchers.rs:520
    #42 0x00005555556d6572 in racer::racer::matchers::match_types (src=..., blobstart=6846, blobend=6873, searchstr=..., filepath=0x7ffff4837b40, search_type=ExactMatch, local=true) at src/racer/matchers.rs:37
    #43 0x00005555556d20c9 in racer::racer::nameres::search_scope (point=0, src=..., pathseg=0x7ffff4837b68, filepath=0x7ffff4837b40, search_type=ExactMatch, local=true, namespace=TypeNamespace)
        at src/racer/nameres.rs:487
    #44 0x00005555556d8c79 in racer::racer::nameres::search_local_scopes (pathseg=0x7ffff4837b68, filepath=0x7ffff4837b40, msrc=..., point=0, search_type=ExactMatch, namespace=TypeNamespace)
        at src/racer/nameres.rs:537
    #45 0x00005555556dcf7b in fn"fn"(16552) () at src/racer/nameres.rs:713
    #46 0x00005555556dce5d in fn"fn"(16539) (p={struct MoveItems<racer::racer::Match> (void)} 0x7fffffe1b6a0) at src/racer/util.rs:175
    #47 0x00005555556dfe05 in iter::FlatMap$LT$$x27a$C$$x20A$C$$x20T$C$$x20U$GT$.Iterator$LT$B$GT$::next::closure.16666 ()
    #48 0x00005555556df987 in option::Option$LT$T$GT$::map::h13519551999946035702 ()
    #49 0x00005555556df625 in iter::FlatMap$LT$$x27a$C$$x20A$C$$x20T$C$$x20U$GT$.Iterator$LT$B$GT$::next::h9730528452447441402 ()
    #50 0x00005555556dff1c in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h14690182140726863152 ()
    #51 0x00005555556df3ac in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h1712331297869611141 ()
    #52 0x00005555556de5fc in iter::Chain$LT$T$C$$x20U$GT$.Iterator$LT$A$GT$::next::h16619676519180759352 ()
    #53 0x00005555556de561 in racer::racer::nameres::WrappedIter<T>.MatchIter::next_match (self=0x7ffff489df00) at src/racer/nameres.rs:642
    #54 0x00005555556bec96 in racer::racer::nameres::Box<MatchIter+ 'static>.Iterator<Match>::next (self=0x7fffffe1c5a0) at src/racer/nameres.rs:633
    #55 0x00005555556beb70 in iter::Iterator::nth::h18321729594562669831 ()
    #56 0x00005555556bf16e in racer::racer::nameres::resolve_path (path=0x7fffffe1d550, filepath=0x7ffff4837aa0, pos=0, search_type=ExactMatch, namespace=BothNamespaces) at src/racer/nameres.rs:762
    #57 0x00005555556f1bf0 in racer::racer::matchers::match_use (msrc=..., blobstart=6846, blobend=6873, searchstr=..., filepath=0x7ffff4837aa0, search_type=ExactMatch, local=true) at src/racer/matchers.rs:520
    #58 0x00005555556d6572 in racer::racer::matchers::match_types (src=..., blobstart=6846, blobend=6873, searchstr=..., filepath=0x7ffff4837aa0, search_type=ExactMatch, local=true) at src/racer/matchers.rs:37
    #59 0x00005555556d20c9 in racer::racer::nameres::search_scope (point=0, src=..., pathseg=0x7ffff4837ac8, filepath=0x7ffff4837aa0, search_type=ExactMatch, local=true, namespace=TypeNamespace)
        at src/racer/nameres.rs:487
    #60 0x00005555556d8c79 in racer::racer::nameres::search_local_scopes (pathseg=0x7ffff4837ac8, filepath=0x7ffff4837aa0, msrc=..., point=0, search_type=ExactMatch, namespace=TypeNamespace)
        at src/racer/nameres.rs:537
    #61 0x00005555556dcf7b in fn"fn"(16552) () at src/racer/nameres.rs:713
    #62 0x00005555556dce5d in fn"fn"(16539) (p={struct MoveItems<racer::racer::Match> (void)} 0x7fffffe224a0) at src/racer/util.rs:175
    #63 0x00005555556dfe05 in iter::FlatMap$LT$$x27a$C$$x20A$C$$x20T$C$$x20U$GT$.Iterator$LT$B$GT$::next::closure.16666 ()
    #64 0x00005555556df987 in option::Option$LT$T$GT$::map::h13519551999946035702 ()
    [...]
    
  2. ebfe commented on Nov 19, 2014

    @ebfe
    Contributor

    Looks like #57 again.

  3. phildawes commented on Nov 19, 2014

    @phildawes
    Collaborator

    I don't think this is the same. It looks like globs connected to the new namespaced enums that's confusing it.
    Running with the debug logging on points at the 'pub use self::SeekStyle::*;' at the top of libstd/io/mod.rs. E.g. try

    RUST_LOG=main=debug racer complete std::io::
    

    I'll try to fix this tonight

  4. phildawes commented on Nov 19, 2014

    @phildawes
    Collaborator

    Hmm.. It's a bit more tricky than I was hoping because you can have things like.

    #![feature(globs)]
    pub use self::mod1::*;
    pub use self::mod2::*;
    pub use self::MyEnum::*;
    
    pub mod mod1 {
        pub mod mod2 {
            pub enum MyEnum {
                V1,
                V2
            }
        }
    }
    
    fn main() {
        let v = V1;    // this is legit!
    }
    

    I think racer will need to do memoization and then abort on a recursive glob path. Am not going to get this finished tonight unfortunately

  5. phildawes commented on Nov 20, 2014

    @phildawes
    Collaborator

    Have added a notice to the front page. I've gone down with some sort of flu bug so I'm not going to get this done today either, sorry!

  6. kiljacken commented on Nov 20, 2014

    @kiljacken
    ContributorAuthor

    That's totally fine. Get well soon!

    On Thu, Nov 20, 2014, 20:46 phildawes notifications@github.com wrote:

    Have added a notice to the front page. I've gone down with some sort of
    flu bug so I'm not going to get this done today either, sorry!

    —
    Reply to this email directly or view it on GitHub
    #70 (comment).

  7. phildawes commented on Nov 22, 2014

    @phildawes
    Collaborator

    Thanks kiljacken!
    I've think I've fixed this now. Does it work on windows?

  8. kiljacken commented on Nov 22, 2014

    @kiljacken
    ContributorAuthor

    It does indeed seem fixed!

    Thanks or your hard work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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