Skip to content
This repository has been archived by the owner on Mar 1, 2019. It is now read-only.

LINK : fatal error LNK1104: cannot open file with concurrent use of rls-analysis #126

Open
steveklabnik opened this issue Jan 31, 2018 · 2 comments

Comments

@steveklabnik
Copy link
Contributor

This bug is a bit... strange. But it's consistent for me.

Once I started depending on pest-derive, using rls-analysis twice at the same time causes a crash.

That is, I have my code open in VS: Code, using the RLS plugin. I also run my program on the same code. Boom.

The output is pretty escaped, but the actual error is

= note: LINK : fatal error LNK1104: cannot open file \'C:\\Users\\steve\\src\\doxidize\\target/rls\\debug\\deps\\pest_derive-d732d243be45bcf5.dll\'          error: aborting due to previous errorerror: Could not compile `pest_derive`.warning: build failed, waiting for other jobs to finish...error: build failed"

that file does exist.

backtrace:


stack backtrace:
   0:     0x7ff607f02538 - backtrace::backtrace::trace
                        at C:\Users\steve\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.5\src\backtrace\mod.rs:41
   1:     0x7ff607efc9c4 - backtrace::capture::Backtrace::new_unresolved
                        at C:\Users\steve\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.5\src\capture.rs:88
   2:     0x7ff607efa78a - failure::backtrace::internal::InternalBacktrace::new
                        at C:\Users\steve\.cargo\registry\src\github.com-1ecc6299db9ec823\failure-0.1.1\src\backtrace\internal.rs:44
   3:     0x7ff607ef9de1 - failure::backtrace::Backtrace::new
                        at C:\Users\steve\.cargo\registry\src\github.com-1ecc6299db9ec823\failure-0.1.1\src\backtrace\mod.rs:98
   4:     0x7ff607a23c40 - failure::error::{{impl}}::from
                        at C:\Users\steve\.cargo\registry\src\github.com-1ecc6299db9ec823\failure-0.1.1\src\error.rs:34
   5:     0x7ff607a2c675 - core::convert::{{impl}}::into
                        at C:\projects\rust\src\libcore\convert.rs:415
   6:     0x7ff607a37cf0 - doxidize::cargo::generate_analysis
                        at C:\Users\steve\src\doxidize\src\cargo.rs:158
   7:     0x7ff6079f8c72 - doxidize::ops::create_skeleton::generate_and_load_analysis
                        at C:\Users\steve\src\doxidize\src\ops\create_skeleton.rs:275
   8:     0x7ff6079f6f63 - doxidize::ops::create_skeleton::create_skeleton
                        at C:\Users\steve\src\doxidize\src\ops\create_skeleton.rs:137
   9:     0x7ff6077b1f9c - doxidize::main
                        at C:\Users\steve\src\doxidize\src\main.rs:62
  10:     0x7ff6077b9a94 - std::rt::lang_start::{{closure}}<()>
                        at C:\projects\rust\src\libstd\rt.rs:74
  11:     0x7ff60818bb6d - std::panicking::try::do_call
                        at C:\projects\rust\src\libstd\panicking.rs:475
  12:     0x7ff6081b1e52 - panic_unwind::__rust_maybe_catch_panic
                        at C:\projects\rust\src\libpanic_unwind\lib.rs:102
  13:     0x7ff60819a3a3 - std::rt::lang_start_internal
                        at C:\projects\rust\src\libstd\rt.rs:50
  14:     0x7ff6077b9a64 - std::rt::lang_start<()>
                        at C:\projects\rust\src\libstd\rt.rs:74
  15:     0x7ff6077b28a7 - main
  16:     0x7ff6081c2389 - __scrt_common_main_seh
                        at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253
  17:     0x7ffbf8831fe4 - BaseThreadInitThunk', libcore\result.rs:945:5

this makes my workflow pretty brutal, as i have to close my editor every time i want to run my code.

@nrc
Copy link
Member

nrc commented Feb 16, 2018

I would recommend doxidise use its own target directory, rather than target/rls, then there will be different versions of the dll.

You would need to either provide a new loader, or modify the CargoAnalysisLoader so that it is parameterised by the target directory (see this code https://github.com/nrc/rls-analysis/blob/master/src/loader.rs#L74-L84)

@steveklabnik
Copy link
Contributor Author

I would recommend doxidise use its own target directory, rather than target/rls, then there will be different versions of the dll.

Ah, okay. I didn't realize this!

modify the CargoAnalysisLoader

This is probably what I'd rather do, given that the rest of the code is duplicated. I'll try to find some time to send in a PR :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants