Skip to content

Crash on Win7 x86_64 #70

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
kiljacken opened this issue Nov 19, 2014 · 8 comments
Closed

Crash on Win7 x86_64 #70

kiljacken opened this issue Nov 19, 2014 · 8 comments

Comments

@kiljacken
Copy link
Contributor

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

@ebfe
Copy link
Contributor

ebfe commented Nov 19, 2014

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 ()
[...]

@ebfe
Copy link
Contributor

ebfe commented Nov 19, 2014

Looks like #57 again.

@phildawes
Copy link
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

@phildawes
Copy link
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

@phildawes
Copy link
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!

@kiljacken
Copy link
Contributor Author

That's totally fine. Get well soon!

On Thu, Nov 20, 2014, 20:46 phildawes [email protected] 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).

@phildawes
Copy link
Collaborator

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

@kiljacken
Copy link
Contributor Author

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
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants