test_lsp.py's LSan check misses leaks hidden by a stale stack pointer
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- testing-qa
Research direction
Start in test_lsp.py at the LSan "no sanitizer reports" check and review how it launches eigenlsp. Run the check with LSAN_OPTIONS=use_stacks=0:use_registers=0, then verify that deleting free_scopes from src/eigenlsp.c causes the planted leak test to fail. Any newly exposed false positives should be fixed or documented with a reason.
Written by the indexing model from the issue text.
Description
Found by the blind critic on #1364. With free_scopes deleted from src/eigenlsp.c (a real leak of the rename scope table), the harness's "no sanitizer reports" check passed. Under normal LSAN options: rc 0, no report. With LSAN_OPTIONS=use_stacks=0:use_registers=0: Direct leak of 512 byte(s). A stale pointer left on the stack keeps the block "reachable", so the leak class the harness claims to watch is invisible to it.
Done when
- The LSP leak check runs eigenlsp with
use_stacks=0:use_registers=0(or an equivalent that sees this class), and the plantedfree_scopesdeletion turns it red. - Any false positives that setting surfaces are fixed or listed with a reason.
- Dominant language
- C
- Stars
- 3
- Forks
- 7
- Avg merge
- 4h 7m
- Merged PRs (30d)
- 112
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from InauguralSystems/EigenScript
-
area:embed kind:silent-wrong
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
InauguralSystems/EigenScript#1387 ·
Maintainers usually reply within 1 day
-
area:stdlib kind:silent-wrong
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
InauguralSystems/EigenScript#1378 ·
Maintainers usually reply within 1 day
-
Error carets pad multi-byte UTF-8 byte-for-byte, so the ^ lands right of the token on a terminalOpenarea:lint-tooling kind:silent-wrong
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
InauguralSystems/EigenScript#1373 ·
Maintainers usually reply within 1 day
-
area:gates kind:docs-drift
Difficulty 1/5 Under an hour Newbie friendliness 88/100
InauguralSystems/EigenScript#1372 ·
Maintainers usually reply within 1 day
-
area:lint-tooling enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
InauguralSystems/EigenScript#1371 ·
Maintainers usually reply within 1 day
All issues in InauguralSystems/EigenScript
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
BasedHardware/omi#19711 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
microsoft/ebpf-for-windows#5604 ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
trezor/trezor-firmware#7985 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 2 days