Repository navigation
Description
Version
codebase-memory-mcp 0.9.0
Platform
Windows (x64)
Install channel
GitHub release archive / install.sh / install.ps1
Binary variant
ui
What happened, and what did you expect?
codebase-memory-mcp cli index_repository --repo-path "D:\path\to\your\repo" --mode fast
level=info msg=mem.init budget_mb=32610 total_ram_mb=65220
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
level=warn msg=index.file_quarantined path=vi.mdf.nodsl.modeling.if/src/aquintos/mdf/dblayer/NullDynamicLoadService.java outcome=hang attempt=2
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
level=warn msg=index.file_quarantined path=aquintos.metric.engine/src/aquintos/metric/engine/creation/MetricModelCreationConstants.java outcome=hang attempt=3
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
level=warn msg=index.file_quarantined path=aquintos.analyse.problemview/src/aquintos/analyse/problemview/views/AnalyseProblemView.java outcome=hang attempt=4
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
level=warn msg=index.file_quarantined path=aquintos.metric.engine/src/aquintos/metric/engine/util/Messages_de.properties outcome=hang attempt=5
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
level=warn msg=index.supervisor.unattributable action=give_up
level=info msg=index.supervisor.reap outcome=hang exit_code=1 signal=0
level=warn msg=index.supervisor.worker_failed outcome=hang exit_code=1 log=C:/Users/lwu/.cache/codebase-memory-mcp/logs/.worker-25072.log
{"status":"error","outcome":"hang","hint":"Indexing worker timed out (a file made no progress). The worker was terminated and the server survived. Re-run to retry.","repo_path":"D:\path\to\your\repo"}
This was run on a 350.57MB folder. It seems only not to be working in this specific subfolder. The files it hangs on are seemingly unrelated and quarantined files change between runs. It also does not seem to be related on size as a neighbouring folder (270MB) indexed successfully within a minute. Worker logs are completely empty.
Reproduction
codebase-memory-mcp cli index_repository --repo-path "D:\path\to\your\repo" --mode fast
I can't share the repository because it is proprietary. I unfortunately was not able to create a dummy project that triggers the same bug. I tried the indexing process on the two biggest subfolders (that contained files being quarantined) within the failing folder and both finished successfully.
The indexing process was run on a folder within a Java/Eclipse RCP project with 350.57MB in size on Windows 11.
Logs
Worker logs were completely empty
Diagnostics trajectory (memory / performance / leak issues)
Project scale (if relevant)
No response
Confirmations
- I searched existing issues and this is not a duplicate.
- My reproduction uses shareable code (a dummy snippet or a public OSS repository), not proprietary code.
Activity
github-actions commentedon Jul 16, 2026
Thanks for the report! To move this forward we need a bit more so we can reproduce it ourselves:
codebase-memory-mcp --versionyou're onOnce that's here we'll pick it straight back up. Heads-up: issues left
awaiting-reporterare automatically closed after a few weeks of silence, but a comment reopens the door anytime.DeusData commentedon Jul 16, 2026
Thanks for the detailed containment log. The changing quarantine candidates and successful indexing of the individual subfolders suggest a repository-level progress or supervision problem rather than one deterministic Java file.
Please attach the output of
index_statusafter the failed run, the total discovered file count, whether this root is a Git working tree, and a directory-level file-count breakdown for the top-level modules. If possible, retry only with a diagnostic v0.9.1 build once one is available; the current zero-byte worker log is itself part of the stability gap tracked in #1132. Marking awaiting-reporter for those non-proprietary diagnostics while keeping this in 0.9.1-rc.Skace-VI commentedon Jul 21, 2026
This is a Git working tree. The folder contains 476 top-level folders. Ive includeed the counts here for the most-filed 35 folders:
6352
3521
2878
2588
2298
1864
1847
1387
1359
1326
1300
1249
1171
1060
991
984
915
825
806
804
793
777
767
764
761
743
718
692
690
683
626
540
517
503
472
As the indexing of the folder failed, it is not listed within the indexed projects and I can't run index_status on it.
This (also included in my previous comment):
{"status":"error","outcome":"hang","hint":"Indexing worker timed out (a file made no progress). The worker was terminated and the server survived. Re-run to retry.","repo_path":"D:\path\to\your\repo"}
was printed at the end of the indexing attempt.
DeusData commentedon Jul 22, 2026
Thanks for the follow-up. The Git working-tree confirmation, top-level file-count distribution, and terminal timeout result supply the requested non-proprietary diagnostics. I removed awaiting-reporter. Because the failed root is never registered, index_status cannot be collected; that absence is itself part of the reproduction. This is back in the high-priority 0.9.1-rc maintainer queue.
Khusan-Khujakeldiev commentedon Jul 23, 2026
I can reproduce this exact symptom (worker hangs → retries →
index.supervisor.unattributable action=give_up→ final{"status":"error","outcome":"hang", ...}) on a fully public repo, which might help since the OP couldn't share their proprietary one.Repro (public, shareable)
9a2d9c7fef47c0af321150f75d8f21db06cccb43llvm/subdirectory specifically (~80.8k files on disk, ~8.5k after filtering)codebase-memory-mcp cli index_repository --repo-path <path>\llvm-project\llvm --mode fastCBM_WORKERS=1(set to control the memory issue from Memory not released after indexing: 20GB+ RSS for 5MB of indexed data #832/fix: memory not released after indexing (20GB+ RSS for 5MB data) #831 — without it, memory runs away before you even get to see this hang, see my comment there)Observed
Exactly 3 attempts, each hangs after 6–15 minutes at a different point in the RSS growth curve (~4.4GB / ~4.7GB / ~6.3GB peak before being killed), then supervisor gives up:
Like the OP, my worker log file (
.worker-*.log) was completely empty (0 bytes) every time — no indication of which file it was stuck on. Noindex.file_quarantinedmessages ever appeared for me either (unlike the OP's later attempts), so whatever heuristic decides which file to quarantine doesn't seem to be triggering consistently, which lines up with the OP's note that "quarantined files change between runs."Smaller subdirectories of the same monorepo (e.g.
mlir/at 2,867 files,polly/at 930 files) index successfully, sometimes after 1 internal hang+retry cycle that does self-recover — so this seems specific to something about scale and/or specific file(s) only present once you get deep enough intollvm/'s ~8.5k files, not a property of any single small file in isolation. That's consistent with the OP's finding that neighboring subfolders indexed fine.Since
llvm/is a permanent, public, stable target (not a moving proprietary codebase), I'm happy to help narrow down which file(s) trigger it if a maintainer can point me at what diagnostic flags/env vars would get past the empty-log problem (e.g. a per-file verbose/trace mode, or a way to disable the timeout so the worker just runs to completion however long it takes).DeusData commentedon Jul 24, 2026
Thanks, this public LLVM commit and exact
llvm/subdirectory make the hang reproducible without proprietary code. The currentCBM_DIAGNOSTICS=1path records process trajectory, but there is no existing flag that reliably recovers the last file after this zero-byte worker-log failure. That missing attribution is part of the bug, so please do not spend more time trying undocumented flags. The scale boundary and theCBM_WORKERS=1setup are now sufficient maintainer evidence.Today20092 commentedon Aug 14, 2026
Additional v0.10.3 reproduction
Environment
Observed failure
The daemon repeatedly records the same supervisor failure:
Diagnostics
CBM_DIAGNOSTICS=1was enabled before daemon startup.The latest short trajectory contained 21 samples over 100 seconds:
This short capture covers a
list_projectsreproduction, not a complete 30-minute indexing attempt.Written by AI: GPT-5.6 Sol (light mode).
DeusData commentedon Aug 14, 2026
@Skace-VI — you gave us the Git working-tree confirmation and the full top-level file-count distribution for a repository you cannot share, which is about as much as anyone could reasonably provide; the label came off then and nothing is waiting on you.
@Khusan-Khujakeldiev's public
llvm/reproduction at a pinned commit, and @Today20092's fresh v0.10.3 run with the ~30-minuteduration_ms=1808233and a 574-byte worker log naming neither a file nor a phase, mean this is reproducible without proprietary code and is still present on the current release. Honest status: not root-caused. The missing attribution is itself part of the bug — there is no flag today that recovers the last file after this failure, so please do not spend more time hunting undocumented ones.Tonight's v0.10.5 is being cut for the issues that make cbm impossible to operate, and indexing that retries, gives up, and explains nothing belongs in that set. Sorry for how much time this has cost you all.
fix(index): make a crashed worker's log survive and name the run
DeusData commentedon Sep 26, 2026
Thank you, @Skace-VI, @Khusan-Khujakeldiev and @Today20092! Between you, this became reproducible on public code.
One part is fixed. Since v0.10.5, the worker log is written durably, with a header and the files that were in flight, so a hang now names where it happened instead of leaving a 0-byte log. The hang itself isn't root-caused yet. If you hit it on v0.11.0, the
.worker-<pid>.logfrom that run is exactly the evidence we're missing. Please attach it, redacting paths as needed.github-actions commentedon Sep 26, 2026
Thanks for the report! To move this forward we need a bit more so we can reproduce it ourselves:
codebase-memory-mcp --versionyou're onOnce that's here we'll pick it straight back up. Heads-up: issues left
awaiting-reporterare automatically closed after a few weeks of silence, but a comment reopens the door anytime.github-actions commentedon Oct 19, 2026
This issue has been waiting on more information for 21 days (a version, exact steps, or a public repro), so it's now marked
stale. It will not be closed automatically — a maintainer reviews stale issues by hand. Adding a comment with the details clears the label and puts it straight back in the queue. We're happy to pick it back up the moment we can reproduce it.DeusData commentedon Oct 19, 2026
Thank you for the public reproductions and the non-proprietary diagnostics. The last update improved attribution but did not establish the hang’s cause. If a normal run still hits it on v0.11.0 or newer, its worker log is useful; the pinned public reproduction is already available for maintainer investigation.