nightly: four jobs red since 10-08 (two CI/tooling defects, two UX budgets), and a cached model that outlives an mcpp upgrade
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 15/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- cpp, docker, github-actions, linux
- Lĩnh vực
- build-system, ci-cd, devops, testing-qa
Hướng nghiên cứu
This bundles five separate problems, so pick one item rather than the whole list. The smallest is the bind mount in nightly.yml: /mnt/scripts is not visible after proot-distro login debian, so check that job's docker run and --bind flags. The UTF-8 truncation crash is in the conformance runner's measure output, where text is clipped before dump(). Done means the nightly job runs past the --measure step and a unit test with a clipped multi-byte string passes.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The nightly workflow has failed every night since 2026-10-08, the same four jobs each time; the run on the 0.0.16 merge commit (d3c3a94, run 38481569529) is the latest. None of it is a regression of 0.0.16 (its PR CI and the release run's pre-release tests passed). Two failures are defects in CI or the test tooling, two are UX budgets never met. One more problem found while verifying 0.0.16 is added at the end. To be handled later; this issue collects them.
1. termux + proot-distro Debian (linux-arm64): the script is not visible inside Debian
proot-distro login debian --bind /mnt/work:/work -- bash /mnt/scripts/in-debian.sh
bash: /mnt/scripts/in-debian.sh: No such file or directory (exit 127)
nightly.yml mounts $RUNNER_TEMP at /mnt/scripts in the termux container (docker run -v "$RUNNER_TEMP:/mnt/scripts:ro"), but proot-distro login debian enters Debian's own rootfs and binds only /mnt/work. mcppls never runs in this job.
Fix: add --bind /mnt/scripts:/mnt/scripts (or write in-debian.sh under /mnt/work).
2. self-hosting (real-xlings, linux-x64): mcppls-conformance aborts writing --measure
Every check passes (real-xlings: 0 failure(s)), then the runner dies:
libc++abi: terminating due to uncaught exception of type nlohmann::json_abi_v3_12_0::detail::type_error:
[json.exception.type_error.316] incomplete UTF-8 string; last byte: 0x86
... Aborted (core dumped) stage/mcppls-conformance run ... --measure "$RUNNER_TEMP/self/real-xlings.json"
Same in the 10-11 and 10-13 nightlies. Something put into the measure JSON (most likely a detail or log tail clipped by bytes) is cut in the middle of a multi-byte UTF-8 character, and dump() throws.
Fix: clip on a UTF-8 boundary wherever the runner truncates text it stores, and/or dump with error_handler_t::replace. A unit test with a clipped multi-byte string.
3. ux (ux-xlings, round 1): U13 idle budgets
| budget | d3c3a94 | earlier nightlies | |
|---|---|---|---|
| clangd CPU while nobody asks (10 min idle) | 0.01 cores | 0.07 | 0.03 / 0.05 / 0.38 |
| clangd memory growth | 10% | +18% | -24% / +24% / +80% |
The idle CPU left is clangd's own background work (background index, implementation units built while idle). mcppls's own idle loops fixed in 0.0.16 (the producer re-run every 2 s, the empty-result prefetch) are not what this measures. Needs a breakdown of what clangd does in those ten minutes (CLANGD_TRACE over the idle window) before deciding between work to stop and a budget to revise.
4. ux (ux-mcpp, two-core): U15 stalls, U8 rebuilds after undo
| budget | d3c3a94 | earlier nightlies | |
|---|---|---|---|
| U15-cold: longest time not ready without progress | 60 s | 117 s | 89 / 108 / 100 s |
| U15-faults: same | 60 s | 127 s | 82 / 104 / 99 s |
| U8-config: module files rebuilt after the mcpp.toml change is undone | 0 | 3 | 4 (10-11) |
- The workflow's own comment says the two-core round "is recorded and never fails the workflow", yet the job fails: either make it
continue-on-erroras intended, or decide it should gate. - U15: on two cores, preparation shows no progress for ~2 minutes; the status should keep reporting progress (or the stall is real and is what to fix).
- U8: undoing a
mcpp.tomlchange should find the earlier BMIs again; 3-4 modules are rebuilt.
5. A cached mcpp model outlives an mcpp upgrade (found while verifying 0.0.16)
A workspace described with mcpp 2026.10.5.2 and then opened with mcpp 2026.10.11.1 first on PATH keeps the old model: the log says the cached mcpp model ... matches its inputs; planning with it while the producer confirms it, then loaded again: unchanged about 70 ms later (no emit could have run), and build.mcpp keeps the diagnostic build.mcpp is not read: mcpp 2026.10.5.2 describes the targets only ... with about.mcpp still 2026.10.5.2. Removing the workspace's mcppls cache directory makes it describe the project with 2026.10.11.1 at once (build.mcpp read, 0 errors).
Expected: the producer's identity (path and version) is part of what the cached model is checked against, so a different mcpp runs the producer instead of confirming the cache. A conformance fixture: describe with one mock mcpp version, switch to another, assert the model's about.mcpp and that the producer ran.
Checklist
- 1. termux: bind
/mnt/scriptsinto Debian - 2. conformance runner: UTF-8-safe truncation in the measure output
- 3. U13: break down clangd's idle work; fix or revise the budget
- 4. two-core round: decide gating; U15 progress during preparation; U8 BMIs after undo
- 5. cached model checked against the producer's identity
- Ngôn ngữ chính
- C++
- Star
- 25
- Fork
- 2
- Merge trung bình
- 21 giờ 5 phút
- Pull request đã merge (30 ngày)
- 13
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Sunrisepeak/mcpp-language-server
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Sunrisepeak/mcpp-language-server#80 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Sunrisepeak/mcpp-language-server#66 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 1/100
Sunrisepeak/mcpp-language-server#77 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
Sunrisepeak/mcpp-language-server#71 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
Sunrisepeak/mcpp-language-server#52 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Sunrisepeak/mcpp-language-server
Issue tương tự
-
#2754 make deepseek api not workĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
xiaoyifang/goldendict-ng#3148 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 91/100
triton-inference-server/server#9069 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 4 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100