rust-lang / rust-lang/rust-analyzer

Possible race condition when AI coders write multiple functions at once.

Open
#20,865 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-flycheck C-support
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

Image<

Just something that I notices. As you can see. if the AI generates multiple step function implementations at once.

Image

It will occasionally not be able to check if something is defined or not.

I can just fix it by restarting the server.

But it's just what I noticed.

/// https://github.com/veighnsche/llama-orch/blob/940f5d0052bef6359b962f10a8e6edbf7a249255/test-harness/bdd/Cargo.toml
[package]
name = "test-harness-bdd"
version = "0.0.0"
edition = "2021"
publish = false
license = "GPL-3.0-or-later"
authors = ["rbee contributors"]

# TEAM-076: Converted from binary to library crate
# BDD tests now run as integration tests via tests/cucumber.rs
# Run with: cargo test

[lib]
name = "test_harness_bdd"
path = "src/lib.rs"

[dependencies]
cucumber = { version = "0.20", features = ["macros"] } /// this is the library that hosts those kind of functions
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
anyhow = { workspace = true }
regex = { workspace = true }
reqwest = { workspace = true }
axum = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
tempfile = "3"
async-trait = "0.1"
uuid = { workspace = true }
shlex = "1.3"  # TEAM-049: Proper shell argument parsing with quote handling
clap = { version = "4", features = ["derive"] }  # TEAM-059: CLI args for mock-worker
nix = { version = "0.27", features = ["signal", "process"] }  # TEAM-062: Process management for error handling
chrono = { workspace = true }  # TEAM-099: Deadline propagation timestamp handling
sysinfo = "0.30"  # TEAM-101: Process liveness checks via PID
serial_test = "3.0"  # TEAM-101: Serial test execution for configuration tests
shellexpand = "3.1"  # TEAM-102: Path expansion for tilde and environment variables
rand = "0.8"  # TEAM-125: Random fuzzing inputs for validation tests

# TEAM-063: Real product dependencies for integration testing
rbee-hive = { path = "../../bin/rbee-hive" }
llm-worker-rbee = { path = "../../bin/llm-worker-rbee" }
hive-core = { path = "../../bin/shared-crates/hive-core" }
# TEAM-079: Added model-catalog for testing
# TEAM-086: Fixed path - model-catalog moved to shared-crates
model-catalog = { path = "../../bin/shared-crates/model-catalog" }
# TEAM-085: Narration verification
observability-narration-core = { path = "../../bin/shared-crates/narration-core", features = ["test-support"] }
# TEAM-079: queen-rbee temporarily disabled due to SQLite version conflict
# TEAM-080: Re-enabled after upgrading queen-rbee rusqlite to 0.32 (libsqlite3-sys 0.28)
queen-rbee = { path = "../../bin/queen-rbee" }

[dev-dependencies]
insta = { workspace = true }

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

Start by reviewing the linked test-harness/bdd/Cargo.toml and its cucumber dependency, then reproduce the concurrent step-function generation scenario if possible. Compare behavior before and after restarting the server; done should include a confirmed cause and a regression test demonstrating that concurrent definitions are checked reliably.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.