Store serialized core in runtime cache

This commit is contained in:
udo 2026-07-16 21:10:09 +00:00
parent ee2177f4b4
commit 93c701c6c7
2 changed files with 7 additions and 2 deletions

View File

@ -140,7 +140,10 @@ changing core-first, unit-load-order symbol resolution.
Each FastCGI child initializes its process-local Wasmtime engine after fork and
before entering the accept loop. This preserves Wasmtime's fork boundary while
preventing the first request assigned to each worker from paying engine startup.
Startup duration or failure is written to the service log.
Startup duration or failure is written to the service log. The serialized core
module lives in the configured writable cache root rather than beside the
possibly root-owned deployed `core.wasm`; freshness still uses the deployed
artifact's metadata.
`request_perf()` reports worker module-cache hits and misses and divides a miss
into artifact lookup, wasm read, custom-section parse, serialized-module

View File

@ -886,7 +886,9 @@ public:
if(!wasm_parse_sections(bytes, core_dylink, abi_ignored, parse_error))
return("core module: " + parse_error);
String core_cached_path = cached_wasm_path(cfg.core_wasm_path);
// Deployed runtime sources can be root-owned while workers run unprivileged.
// Keep the derived serialized core in the configured writable cache root.
String core_cached_path = path_join(cfg.cache_root, ".uce-core.cwasm");
String compile_error;
bool serialized_cache_hit = false;
auto compiled_or_cached = load_or_compile_cached_module(engine, core_cached_path, cfg.core_wasm_path, bytes, compile_error, serialized_cache_hit);