Skip to content

Crash on large codebase #385

@EnziinSystem

Description

@EnziinSystem

The program is supposed to work well with large codebases, but in reality, that's not the case; it easily crashes with some popular open-source C++ projects.

Steps:

git clone https://gitlab.com/kicad/code/kicad

And indexing:

C:\codebase-memory-mcp cli index_repository "{\"repo_path\": \"/path/to/kicad\", \"persistence\": true, \"mode\": \"moderate\"}"
level=info msg=mem.init budget_mb=8159 total_ram_mb=16319
level=info msg=pipeline.discover files=4972 elapsed_ms=1550
level=info msg=pipeline.route path=full
level=info msg=pass.start pass=structure files=4972
level=info msg=pass.done pass=structure nodes=3979 edges=3952
level=info msg=pass.timing pass=structure elapsed_ms=36
level=info msg=pipeline.mode mode=parallel workers=8 files=4972
level=info msg=parallel.extract.start files=4972 workers=8
level=info msg=parallel.mem.budget total_mb=8159 per_worker_mb=1019
level=info msg=parallel.extract.file.start pos=5 size_kb=2936 path=translation/pofiles/ja.po
level=info msg=parallel.extract.file.start pos=3 size_kb=3075 path=qa_temp/data/triangulation/triangulation_status.json
level=info msg=parallel.extract.file.start pos=6 size_kb=2934 path=common/newstroke_font.cpp
level=info msg=parallel.extract.file.start pos=2 size_kb=3123 path=translation/pofiles/el.po
level=info msg=parallel.extract.file.start pos=1 size_kb=3179 path=translation/pofiles/en.po
level=info msg=parallel.extract.file.start pos=4 size_kb=2943 path=translation/pofiles/ta.po
level=info msg=parallel.extract.file.start pos=7 size_kb=2889 path=qa_temp/data/pcbnew/plugins/2581/testcase3-RevC-full.xml
level=info msg=parallel.extract.file.start pos=0 size_kb=9165 path=common/gal/opengl/bitmap_font_img.c
level=info msg=parallel.extract.file.done pos=4 elapsed_ms=508 defs=1 path=translation/pofiles/ta.po
level=info msg=parallel.extract.file.start pos=8 size_kb=2834 path=translation/pofiles/th.po
level=info msg=parallel.extract.file.done pos=5 elapsed_ms=644 defs=1 path=translation/pofiles/ja.po
level=info msg=parallel.extract.file.start pos=9 size_kb=2825 path=translation/pofiles/ru.po
level=info msg=parallel.extract.file.done pos=2 elapsed_ms=749 defs=1 path=translation/pofiles/el.po
level=info msg=parallel.extract.file.done pos=8 elapsed_ms=521 defs=1 path=translation/pofiles/th.po
level=info msg=parallel.extract.file.done pos=1 elapsed_ms=1202 defs=1 path=translation/pofiles/en.po
level=info msg=parallel.extract.file.start pos=10 size_kb=2788 path=translation/pofiles/bg.po
level=info msg=parallel.extract.file.done pos=9 elapsed_ms=593 defs=1 path=translation/pofiles/ru.po
level=info msg=parallel.extract.file.start pos=11 size_kb=2757 path=translation/pofiles/ka.po
level=info msg=parallel.extract.file.done pos=3 elapsed_ms=1362 defs=21466 path=qa_temp/data/triangulation/triangulation_status.json
level=info msg=parallel.extract.file.start pos=12 size_kb=2739 path=translation/pofiles/es_MX.po
level=info msg=parallel.extract.progress done=10 total=4972
level=info msg=parallel.extract.file.start pos=13 size_kb=2735 path=translation/pofiles/es.po
level=info msg=parallel.extract.file.start pos=14 size_kb=2674 path=translation/pofiles/uk.po
level=info msg=parallel.extract.file.done pos=6 elapsed_ms=1732 defs=2 path=common/newstroke_font.cpp
level=info msg=parallel.extract.file.done pos=10 elapsed_ms=596 defs=1 path=translation/pofiles/bg.po
level=info msg=parallel.extract.file.done pos=11 elapsed_ms=542 defs=1 path=translation/pofiles/ka.po
level=info msg=parallel.extract.file.start pos=15 size_kb=2635 path=translation/pofiles/te.po
level=info msg=parallel.extract.file.start pos=16 size_kb=2588 path=translation/pofiles/cs.po
level=info msg=parallel.extract.file.start pos=17 size_kb=2541 path=translation/pofiles/lt.po
level=info msg=parallel.extract.file.done pos=14 elapsed_ms=527 defs=1 path=translation/pofiles/uk.po
level=info msg=parallel.extract.file.done pos=13 elapsed_ms=671 defs=1 path=translation/pofiles/es.po
level=info msg=parallel.extract.file.start pos=18 size_kb=2535 path=translation/pofiles/pt_BR.po
level=info msg=parallel.extract.file.done pos=12 elapsed_ms=727 defs=1 path=translation/pofiles/es_MX.po
level=info msg=parallel.extract.file.start pos=19 size_kb=2530 path=translation/pofiles/hi.po
level=info msg=parallel.extract.file.start pos=20 size_kb=2503 path=translation/pofiles/de.po
level=info msg=parallel.extract.file.done pos=15 elapsed_ms=433 defs=1 path=translation/pofiles/te.po
level=info msg=parallel.extract.file.start pos=21 size_kb=2501 path=translation/pofiles/pl.po
level=info msg=parallel.extract.file.done pos=19 elapsed_ms=457 defs=1 path=translation/pofiles/hi.po
level=info msg=parallel.extract.file.done pos=17 elapsed_ms=653 defs=1 path=translation/pofiles/lt.po
level=info msg=parallel.extract.file.done pos=18 elapsed_ms=562 defs=1 path=translation/pofiles/pt_BR.po
level=info msg=parallel.extract.file.done pos=16 elapsed_ms=737 defs=1 path=translation/pofiles/cs.po
level=info msg=parallel.extract.progress done=20 total=4972
level=info msg=parallel.extract.file.start pos=22 size_kb=2477 path=translation/pofiles/pt.po
level=info msg=parallel.extract.file.start pos=23 size_kb=2461 path=translation/pofiles/fi.po
level=info msg=parallel.extract.file.done pos=21 elapsed_ms=528 defs=1 path=translation/pofiles/pl.po
level=info msg=parallel.extract.file.done pos=20 elapsed_ms=756 defs=1 path=translation/pofiles/de.po
level=info msg=parallel.extract.file.done pos=22 elapsed_ms=657 defs=1 path=translation/pofiles/pt.po
level=info msg=parallel.extract.file.done pos=23 elapsed_ms=641 defs=1 path=translation/pofiles/fi.po
level=info msg=parallel.extract.file.done pos=7 elapsed_ms=3748 defs=51440 path=qa_temp/data/pcbnew/plugins/2581/testcase3-RevC-full.xml
level=info msg=parallel.extract.progress done=30 total=4972
level=info msg=parallel.extract.file.done pos=0 elapsed_ms=5000 defs=0 path=common/gal/opengl/bitmap_font_img.c
level=info msg=parallel.extract.progress done=40 total=4972
level=info msg=parallel.extract.progress done=50 total=4972
level=info msg=parallel.extract.file.done pos=50 elapsed_ms=1148 defs=2 path=common/bitmap_info.cpp
level=info msg=parallel.extract.file.done pos=52 elapsed_ms=1212 defs=79 path=pcbnew/pcb_io/kicad_sexpr/pcb_io_kicad_sexpr_parser.cpp
level=info msg=parallel.extract.progress done=60 total=4972
level=info msg=parallel.extract.progress done=70 total=4972
level=info msg=parallel.extract.progress done=80 total=4972
level=info msg=parallel.extract.file.done pos=48 elapsed_ms=4086 defs=1 path=common/gal/opengl/SmaaAreaTex.h
level=info msg=parallel.extract.progress done=90 total=4972
level=info msg=parallel.extract.file.done pos=92 elapsed_ms=1077 defs=73 path=pcbnew/router/router_tool.cpp
level=info msg=parallel.extract.progress done=100 total=4972
level=info msg=parallel.extract.progress done=110 total=4972
level=info msg=parallel.extract.progress done=120 total=4972
level=info msg=parallel.extract.progress done=140 total=4972
level=info msg=parallel.extract.progress done=150 total=4972
level=info msg=parallel.extract.progress done=160 total=4972
level=info msg=parallel.extract.file.done pos=129 elapsed_ms=1540 defs=66 path=pcbnew/router/pns_shove.cpp
level=info msg=parallel.extract.progress done=170 total=4972
level=info msg=parallel.extract.progress done=180 total=4972
level=info msg=parallel.extract.progress done=130 total=4972
level=info msg=parallel.extract.progress done=190 total=4972
level=info msg=parallel.extract.file.done pos=162 elapsed_ms=1125 defs=51 path=pcbnew/router/pns_line_placer.cpp
level=info msg=parallel.extract.progress done=200 total=4972
level=info msg=parallel.extract.progress done=210 total=4972
level=info msg=parallel.extract.progress done=220 total=4972
level=info msg=parallel.extract.progress done=230 total=4972
level=info msg=parallel.extract.progress done=240 total=4972
level=info msg=parallel.extract.progress done=250 total=4972
level=info msg=parallel.extract.progress done=260 total=4972
level=info msg=parallel.extract.progress done=270 total=4972
level=

The same thing happens with other C++ projects if they are large enough.
Test with real-world C++ projects instead of a very clean C project like the Linux Kernel or projects that are too small.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions