rust-lang / rust-lang/rust-analyzer

Having rust-analyzer open causes linker errors for pyo3

Open
#9,932 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-macro C-bug S-blocked
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

When compiling pyo3 having rust-analyzer open causes the build to fail.

I can reliably reproduce this by just opening vscode, letting rust analyzer run whatever it does on start, and then trying cargo test in another terminal. Closing vscode or disabling rust-analyzer fixes this issue.

Error message

PS C:\Users\bruno\rust\pyo3> cargo test
   Compiling pyo3-build-config v0.14.2 (C:\Users\bruno\rust\pyo3\pyo3-build-config)
   Compiling pyo3-macros-backend v0.14.2 (C:\Users\bruno\rust\pyo3\pyo3-macros-backend)
   Compiling pyo3 v0.14.2 (C:\Users\bruno\rust\pyo3)
   Compiling pyo3-macros v0.14.2 (C:\Users\bruno\rust\pyo3\pyo3-macros)
error: linking with `link.exe` failed: exit code: 1201
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.25.28610\\bin\\HostX64\\x64\\link.exe" "/DEF:C:\\Users\\bruno\\AppData\\Local\\Temp\\rustcyt6mCk\\lib.def" "/NOLOGO" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.10w5m3jfg09mphew.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.12atyo2j85fkq7cn.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.18483pet6oorfcaf.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.1b3gl59olbl078rv.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.1m516po019l0b1r0.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.1wyuuzmii0z3mba5.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.22w8l3o2n1cmns6e.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.267j86se45yb1fvv.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.28wp4el970y0e33h.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2bavf68ka8l7oan1.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2bex68l6ix2kiofz.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2gi9orfha1rolc6d.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2k56a8e75mrlw5yq.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2qmuwrycwz70sd3r.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2qzdjvbv7hajpo6c.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2r0fy647j9b3hqtk.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.2t34msl2e3ek8yj3.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.323b3zme49dll2dm.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.32d21jzu6bo79or2.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.32smgizh9mxo6roh.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.32t8a1mf2ij8lkcc.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.37df7aase994kf15.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.3gnt06ozs9hmjt2d.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.3oruw5wrjrsvh5ec.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.3tmz0o8r8aco6sqy.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.43z145u4nglohhs4.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.46wbd82zqw72aj7e.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.4g9xnpwh2vjmi7jf.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.4xumjuzdihsg8ooi.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.514kzbey4lomdmw2.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.514m8ci3mrny103g.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.56aothl0zz1nzas0.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.57dal3gkx80gusjc.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.5y99v0txi0lz2gl.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.9h80lnnnvctvzip.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.f3le6jgmclil3yz.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.pw3alhz0cjjtz8j.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.zqpuu5wupl9fsb5.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.3plen2l1azk7e7wv.rcgu.o" "C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.26n76gurlhdmqadw.rcgu.o" "/LIBPATH:C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps" "/LIBPATH:C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\bruno\\Rust\\pyo3\\target\\debug\\deps\\libpyo3_macros_backend-abe1702ae06f2fcc.rlib" "C:\\Users\\bruno\\Rust\\pyo3\\target\\debug\\deps\\libpyo3_build_config-7e1685a275eab5ab.rlib" "C:\\Users\\bruno\\Rust\\pyo3\\target\\debug\\deps\\libonce_cell-9a97b8357599c0b9.rlib" "C:\\Users\\bruno\\Rust\\pyo3\\target\\debug\\deps\\libsyn-e55518d63704e3dd.rlib" "C:\\Users\\bruno\\Rust\\pyo3\\target\\debug\\deps\\libquote-8e69fd11733a9ec9.rlib" "C:\\Users\\bruno\\Rust\\pyo3\\target\\debug\\deps\\libproc_macro2-8ce88383efc71c4a.rlib" "C:\\Users\\bruno\\Rust\\pyo3\\target\\debug\\deps\\libunicode_xid-93f2aaaeab33b3e4.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libproc_macro-cf4b0cc3ea285d94.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-stlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-65e73515f6680323.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-f8cff8d9bd7840ad.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-fe60ba8a15823ad7.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-cf86dd7881d3c2f9.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-43c65575cdb9db58.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-b6defdcc73190cb\\x86_64-pc-windows-msvc\\lib\\liblibc-29274e913e0d2be1.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-628c6d389039a057.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-5253a24e114dde59.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-230e4a83f184a187.rlib" "C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-d4faa97442f81921.rlib" "kernel32.lib" "ws2_32.lib" "advapi32.lib" "userenv.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.dll" "/OPT:REF,NOICF" "/DLL" "/IMPLIB:C:\\Users\\bruno\\rust\\pyo3\\target\\debug\\deps\\pyo3_macros-d7af52fdb111651f.dll.lib" "/DEBUG" "/NATVIS:C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\bruno\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note: LINK : fatal error LNK1201: error writing to program database 'C:\Users\bruno\rust\pyo3\target\debug\deps\pyo3_macros-d7af52fdb111651f.pdb'; check for insufficient disk space, invalid path, or insufficient privilege


error: could not compile `pyo3-macros` due to previous error

PS C:\Users\bruno\rust\pyo3> cargo clean
error: could not remove build directory

Caused by:
  failed to remove file `C:\Users\bruno\rust\pyo3\target\debug\deps\pyo3_macros-d7af52fdb111651f.pdb`

Caused by:
  Access is denied. (os error 5)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure by opening the project in VS Code with rust-analyzer enabled, then running cargo test and cargo clean on Windows. Investigate the interaction around the generated PDB file and linker access; done means builds and cleanup succeed while rust-analyzer remains open.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, vscode
Domain
developer-experience, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.