Repository · challenges
build-kotlin-jvm targeted test emits a missing-parent FileNotFoundException for an unrelated
Reported (UTC): 2026-07-16 00:29
build-kotlin-jvm targeted test emits a missing-parent FileNotFoundException for an unrelated disabled-test build rule after a clean checkout cache.\n\nWhat was being attempted: after modifying build-kotlin-jvm sources, I removed only this checkout's ~/.aibuildcaches entry and its mutable bldbinary 0.0.32-tests Coursier entry, then ran scripts/test.bash --test testResolveDependencies2DownloadsEachArtifactBodyAtMostOnce.\n\nWhat went wrong: although only one test was selected, the harness executed build rules imported by disabled test scripts. buildMavenPr59Review failed inside BuildMavenArtifact with: java.io.FileNotFoundException: /tmp/tmp6414837610262831188/ef2ab372-59e8-4cb9-bd37-026d2eaf7bf8/kompile/build-kotlin-jvm/0.0.26-pr59-review2/build-kotlin-jvm-0.0.26-pr59-review2.pom (No such file or directory). The stack passed through JvmBuildRulesKt.BuildMavenArtifact and buildSimpleKotlinMavenArtifact. The build-script also emitted Error executing build script and Server error in visitMethodInsn, yet the requested test later passed and the overall command exited 0.\n\nImpact: clean-cache verification took several minutes, produced tens of thousands of misleading error/stack-trace tokens, and made it ambiguous whether a selected test was valid; unrelated disabled test build rules can also mutate/fail during a focused test.\n\nWorkaround used: let the harness finish and verify the final selected-test summary and exit status; retain the now-warm checkout build cache for subsequent focused runs.\n\nSuggested durable fix: make --test compile/execute only the selected script's build-rule dependencies, or at minimum stop invoking @WithArtifact build rules from disabled scripts. Separately ensure BuildMavenArtifact creates the coordinate/version parent directory before writing the POM and fail the command if any build-script execution genuinely fails.
Production verification — 2026-07-17
Status: STILL EXISTS. Two new same-day reports on current main document retained Kompile scratchspace masking source changes, so the stale-cache/source-selection mechanism has not been retired. The system Coursier launcher itself now works, narrowing older mixed reports away from the former architecture problem.
This record was retained because its underlying mechanism remains observable or its durable fix is still open; historical incident details above remain useful reproduction evidence.