Resolve a per-supervisor-run temp path /logs/.supervisor- * (falls back to the CWD if the cache dir is unresolvable). Used for the crash- * attribution marker and the quarantine list during the recovery re-run. */
| 7496 | * (falls back to the CWD if the cache dir is unresolvable). Used for the crash- |
| 7497 | * attribution marker and the quarantine list during the recovery re-run. */ |
| 7498 | static void supervisor_tmp_path(char *out, size_t out_sz, const char *suffix) { |
| 7499 | const char *cdir = cbm_resolve_cache_dir(); |
| 7500 | if (cdir && cdir[0]) { |
| 7501 | char logdir[CBM_SZ_1K]; |
| 7502 | snprintf(logdir, sizeof(logdir), "%s/logs", cdir); |
| 7503 | cbm_mkdir_p(logdir, 0755); |
| 7504 | snprintf(out, out_sz, "%s/.supervisor-%d%s", logdir, (int)getpid(), suffix); |
| 7505 | } else { |
| 7506 | snprintf(out, out_sz, ".supervisor-%d%s", (int)getpid(), suffix); |
| 7507 | } |
| 7508 | } |
| 7509 | |
| 7510 | /* Parse the worker's marker JOURNAL ("S <rel>" / "D <rel>" lines, one event |
| 7511 | * per line — see cbm_index_mark_start/done) into the crash/hang SUSPECT set: |
no test coverage detected