@openmixer/plugin-qualify 0.17.2 → 0.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/bin/plugin-qualify-sync.mjs +1 -1
- package/dist/host-admission.d.ts +25 -6
- package/dist/host-admission.js +45 -17
- package/dist/host-admission.js.map +1 -1
- package/dist/hostd-pin-files.d.ts +25 -0
- package/dist/hostd-pin-files.js +58 -0
- package/dist/hostd-pin-files.js.map +1 -0
- package/dist/probe-judge.d.ts +2 -0
- package/dist/probe-judge.js +3 -2
- package/dist/probe-judge.js.map +1 -1
- package/dist/probe-output-fixtures.js +4 -1
- package/dist/probe-output-fixtures.js.map +1 -1
- package/dist/probe-output.d.ts +2 -1
- package/dist/probe-output.js +4 -1
- package/dist/probe-output.js.map +1 -1
- package/dist/probe-runner.d.ts +5 -0
- package/dist/probe-runner.js +8 -3
- package/dist/probe-runner.js.map +1 -1
- package/dist/qualification-record.d.ts +16 -1
- package/dist/qualification-record.js +8 -2
- package/dist/qualification-record.js.map +1 -1
- package/dist/qualify-sync.d.ts +22 -3
- package/dist/qualify-sync.js +139 -38
- package/dist/qualify-sync.js.map +1 -1
- package/package.json +1 -1
- package/src/host-admission.ts +69 -23
- package/src/hostd-pin-files.ts +75 -0
- package/src/probe-judge.ts +5 -1
- package/src/probe-output-fixtures.ts +4 -1
- package/src/probe-output.ts +6 -2
- package/src/probe-runner.ts +13 -3
- package/src/qualification-record.ts +16 -2
- package/src/qualify-sync.ts +146 -37
- package/tools/descriptors.py +8 -1
- package/tools/mod-host-admit.mjs +3 -1
package/dist/probe-runner.js
CHANGED
|
@@ -19,7 +19,7 @@ import { ClapQualifyError, clapQualifyTools, proberOffer } from "./clap-qualify.
|
|
|
19
19
|
import { locateNativeTool } from "./tool-paths.js";
|
|
20
20
|
import { OPENMIXER_CONSOLE_PROFILE, shippedHostProfile } from "./host-profiles.js";
|
|
21
21
|
import { IN_PROCESS_TIER_HOST, ISOLATED_TIER_HOST } from "./qualification-record.js";
|
|
22
|
-
import { SPAWNED_ADMISSIONS, admitPlugin, admittedHostOf } from "./host-admission.js";
|
|
22
|
+
import { SPAWNED_ADMISSIONS, admitPlugin, admitUnderAdapter, admittedHostOf } from "./host-admission.js";
|
|
23
23
|
import { judgeProbeOutput, judgmentVerdicts } from "./probe-judge.js";
|
|
24
24
|
import { readProbeOutput } from "./probe-output.js";
|
|
25
25
|
import { budgetCells, gridCells, runnerInvocations } from "./measurement-grid.js";
|
|
@@ -174,6 +174,8 @@ export function probeTarget(target, options) {
|
|
|
174
174
|
export function qualifyTargets(targets, options) {
|
|
175
175
|
const profiles = options.profiles ?? [OPENMIXER_CONSOLE_PROFILE];
|
|
176
176
|
const admissionRuns = options.admissions ?? SPAWNED_ADMISSIONS;
|
|
177
|
+
const runEnvironment = options.env ?? process.env;
|
|
178
|
+
const admissionEnv = options.admissionLv2Path === undefined ? runEnvironment : { ...runEnvironment, LV2_PATH: options.admissionLv2Path.join(":") };
|
|
177
179
|
const runs = [];
|
|
178
180
|
const verdicts = [];
|
|
179
181
|
const documents = [];
|
|
@@ -191,11 +193,13 @@ export function qualifyTargets(targets, options) {
|
|
|
191
193
|
const measured = cells === undefined ? {} : { cells: budgetCells(cells, options.cellsPerPluginBudget) };
|
|
192
194
|
// an LV2 plugin is run under each measured host once, whichever probe output it is judged with
|
|
193
195
|
const admissions = {};
|
|
196
|
+
// an LV2 plugin is also run once under plugin-hostd's LV2 adapter, recorded beside the verdicts (#223)
|
|
197
|
+
const adapter = target.format === "lv2" ? admitUnderAdapter(target.uri, admissionRuns, admissionEnv) : undefined;
|
|
194
198
|
if (target.format === "lv2") {
|
|
195
199
|
for (const profile of judgedProfiles) {
|
|
196
200
|
const host = admittedHostOf(profile);
|
|
197
201
|
if (host !== undefined)
|
|
198
|
-
admissions[profile.id] = admitPlugin(host, target.uri, admissionRuns);
|
|
202
|
+
admissions[profile.id] = admitPlugin(host, target.uri, admissionRuns, admissionEnv);
|
|
199
203
|
}
|
|
200
204
|
}
|
|
201
205
|
for (const profile of judgedProfiles) {
|
|
@@ -212,7 +216,8 @@ export function qualifyTargets(targets, options) {
|
|
|
212
216
|
try {
|
|
213
217
|
for (const { offer, profiles: forOffer } of byOffer.values()) {
|
|
214
218
|
const probed = probeTarget(target, { ...options, ...measured, offer });
|
|
215
|
-
const
|
|
219
|
+
const plain = judgeProbeOutput(probed.output, forOffer, { admissions });
|
|
220
|
+
const judgment = adapter === undefined ? plain : { ...plain, adapter };
|
|
216
221
|
targetRuns.push({ bytes: probed.bytes, judgment });
|
|
217
222
|
for (const v of judgmentVerdicts(judgment))
|
|
218
223
|
judged.set(v.host, v);
|
package/dist/probe-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe-runner.js","sourceRoot":"","sources":["../src/probe-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"probe-runner.js","sourceRoot":"","sources":["../src/probe-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,12 +54,16 @@ export interface UnmeasuredFigure {
|
|
|
54
54
|
export declare function unmeasuredFigures(output: ProbeOutput): readonly UnmeasuredFigure[];
|
|
55
55
|
/** A cell's latency when the run took no figure: the contract's unmeasured word and the hosting code a reader classifies by. */
|
|
56
56
|
export interface UnmeasuredLatency {
|
|
57
|
+
/** The figure the plugin declared (LV2 latency port, CLAP latency extension) when it loaded but the probe did not measure. */
|
|
58
|
+
readonly declaredFrames?: number;
|
|
57
59
|
readonly unmeasuredReason: string;
|
|
58
60
|
readonly code: string;
|
|
59
61
|
}
|
|
60
62
|
/** A grid point as the record writes it: every cell carries `latency`, the figures or why there are none (#201). */
|
|
61
63
|
export type RecordGridPoint = Omit<ProbeGridPoint, "latency"> & {
|
|
62
|
-
readonly latency: NonNullable<ProbeGridPoint["latency"]>
|
|
64
|
+
readonly latency: (Omit<NonNullable<ProbeGridPoint["latency"]>, "measuredFrames"> & {
|
|
65
|
+
readonly measuredFrames: number;
|
|
66
|
+
}) | UnmeasuredLatency;
|
|
63
67
|
};
|
|
64
68
|
/**
|
|
65
69
|
* Why a cell has no latency figure. A cell whose run failed: its outcome's word. A latency step at the cell that did not
|
|
@@ -115,6 +119,17 @@ export interface QualificationRecord {
|
|
|
115
119
|
readonly testedVersion?: string;
|
|
116
120
|
readonly binary: ProbeOutput["binary"];
|
|
117
121
|
readonly verdicts: readonly RecordVerdict[];
|
|
122
|
+
/**
|
|
123
|
+
* An LV2 plugin run under plugin-hostd's LV2 adapter (omx-clap-host), as under mod-host: admitted, or refused with
|
|
124
|
+
* its code, or `measured: false` when it was not tried. Beside the verdicts, which it does not change (#223).
|
|
125
|
+
*/
|
|
126
|
+
readonly adapter?: {
|
|
127
|
+
readonly host: string;
|
|
128
|
+
readonly measured: boolean;
|
|
129
|
+
readonly admitted: boolean;
|
|
130
|
+
readonly code?: string;
|
|
131
|
+
readonly params: Readonly<Record<string, string | number>>;
|
|
132
|
+
};
|
|
118
133
|
readonly tiers: RecordTiers;
|
|
119
134
|
/** The cost reasons at each host's rate and quantum, beside the verdicts; an instrument's with the notes it held. */
|
|
120
135
|
readonly cost: readonly {
|
|
@@ -55,8 +55,13 @@ const OUTCOME_WORD = {
|
|
|
55
55
|
* older than the latency arm writes it.
|
|
56
56
|
*/
|
|
57
57
|
export function latencyOfCell(output, point) {
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
const had = point.latency;
|
|
59
|
+
if (had?.measuredFrames !== undefined)
|
|
60
|
+
return { ...had, measuredFrames: had.measuredFrames };
|
|
61
|
+
const why = unmeasuredOfCell(output, point);
|
|
62
|
+
return had === undefined ? why : { declaredFrames: had.declaredFrames, ...why };
|
|
63
|
+
}
|
|
64
|
+
function unmeasuredOfCell(output, point) {
|
|
60
65
|
const code = HOSTING_CODE.latencyUnmeasured;
|
|
61
66
|
if (point.outcome !== PROBE_OK)
|
|
62
67
|
return { unmeasuredReason: OUTCOME_WORD[point.outcome] ?? word("probeError"), code };
|
|
@@ -113,6 +118,7 @@ export function buildQualificationRecord(judgment, copy, notMeasured = []) {
|
|
|
113
118
|
...(h.verdict.deciding === undefined ? {} : { deciding: h.verdict.deciding }),
|
|
114
119
|
reasons: h.reasons,
|
|
115
120
|
})),
|
|
121
|
+
...(judgment.adapter === undefined ? {} : { adapter: judgment.adapter }),
|
|
116
122
|
tiers: tiersOf(judgment),
|
|
117
123
|
cost: judgment.hosts.map((h) => ({ host: h.verdict.host, ...h.cost })),
|
|
118
124
|
measurements: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualification-record.js","sourceRoot":"","sources":["../src/qualification-record.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAyC,MAAM,mBAAmB,CAAC;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,uCAAuC,CAAC;AAmCnF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAqC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AAC/G,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAaxD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,OAAO,MAAM,CAAC,KAAK;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;SACpF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,SAAS,EAAE,CAAC,CAAC,IAA0B;QACvC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO;QAChC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KACxD,CAAC,CAAC,CAAC;AACR,CAAC;
|
|
1
|
+
{"version":3,"file":"qualification-record.js","sourceRoot":"","sources":["../src/qualification-record.ts"],"names":[],"mappings":"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"}
|
package/dist/qualify-sync.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type HostProfile } from "./host-profiles.js";
|
|
2
2
|
import { type PinEntry } from "./pins-file.js";
|
|
3
|
+
import { type PinFilesRun } from "./hostd-pin-files.js";
|
|
3
4
|
import { type GridSpec } from "./measurement-grid.js";
|
|
4
5
|
import { type MemoryBound } from "./memory-bound.js";
|
|
5
6
|
import { type NotMeasured } from "./qualification-record.js";
|
|
@@ -53,6 +54,7 @@ export interface SyncArgs {
|
|
|
53
54
|
readonly system: boolean;
|
|
54
55
|
readonly force: boolean;
|
|
55
56
|
readonly noDistributed: boolean;
|
|
57
|
+
readonly noWait: boolean;
|
|
56
58
|
readonly help: boolean;
|
|
57
59
|
/** The settings given as flags, by key. */
|
|
58
60
|
readonly values: ReadonlyMap<string, string>;
|
|
@@ -168,6 +170,8 @@ export interface SyncContext {
|
|
|
168
170
|
readonly settings: SyncSettings;
|
|
169
171
|
readonly env: Readonly<Record<string, string | undefined>>;
|
|
170
172
|
readonly log: (line: string) => void;
|
|
173
|
+
/** The run of `plugin-hostd --pin-files`, a stand-in in tests. */
|
|
174
|
+
readonly pinFilesRun?: PinFilesRun;
|
|
171
175
|
}
|
|
172
176
|
/** One item qualified, whatever happens to it: an error of the sync's own while measuring it is its outcome, not the run's end. */
|
|
173
177
|
export declare function qualifyItem(ctx: SyncContext, item: SyncItem, files: readonly FileDigest[]): SyncEntry;
|
|
@@ -222,16 +226,31 @@ export interface SyncSummary {
|
|
|
222
226
|
/** The pins a running daemon took, when one answered. */
|
|
223
227
|
readonly sent?: number;
|
|
224
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Why a reader that is not the sync's user (the console, #221) cannot read the descriptors: the directory or one of its
|
|
231
|
+
* parent without search permission for others, the directory or a descriptor without read permission for others. One
|
|
232
|
+
* line each; none when the directory does not exist yet or everything is open.
|
|
233
|
+
*/
|
|
234
|
+
export declare function descriptorAccessProblems(dir: string): string[];
|
|
225
235
|
export declare function summaryLine(s: SyncSummary): string;
|
|
236
|
+
export interface SyncLock {
|
|
237
|
+
release(): Promise<void>;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* The lock of one state file: flock(1) on `<state file>.lock`, held by a child process for as long as this one lives or
|
|
241
|
+
* until `release`, so a crashed run frees it. Waits for the holder, or with `wait` false returns `undefined` at once.
|
|
242
|
+
*/
|
|
243
|
+
export declare function takeLock(stateFile: string, wait: boolean): Promise<SyncLock | undefined>;
|
|
226
244
|
export interface SyncRunOptions {
|
|
227
245
|
readonly force?: boolean;
|
|
246
|
+
/** False under `--no-wait`: a run in progress is not waited for; the holder runs once more at its end instead. */
|
|
247
|
+
readonly wait?: boolean;
|
|
228
248
|
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
229
249
|
readonly log?: (line: string) => void;
|
|
230
250
|
}
|
|
231
251
|
/**
|
|
232
|
-
* One run:
|
|
233
|
-
*
|
|
234
|
-
* whole after every item, so a run cut short keeps all it finished. `undefined` when another run holds the lock.
|
|
252
|
+
* One run under the lock: waits for a run in progress, or with `wait` false leaves a marker for it and returns
|
|
253
|
+
* `undefined`. The holder runs once more at its end for every marker left meanwhile.
|
|
235
254
|
*/
|
|
236
255
|
export declare function runSync(settings: SyncSettings, options?: SyncRunOptions): Promise<SyncSummary | undefined>;
|
|
237
256
|
/** What a failed descriptor pass says: plainly, once, when the lilv binding is what is missing (a suite without python3-lilv). */
|
package/dist/qualify-sync.js
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
* When a daemon answers on the command port, the pins that changed are also sent to it with `pin_set`, and the ones
|
|
17
17
|
* of a plugin that is gone with `pin_clear`. What a gone plugin left in the records and the descriptors is removed.
|
|
18
18
|
*/
|
|
19
|
-
import { spawnSync } from "node:child_process";
|
|
19
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
20
20
|
import { createHash } from "node:crypto";
|
|
21
|
-
import { closeSync, existsSync, lstatSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, readdirSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync,
|
|
21
|
+
import { closeSync, existsSync, lstatSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, readdirSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
|
|
22
22
|
import { createConnection } from "node:net";
|
|
23
23
|
import { homedir, tmpdir } from "node:os";
|
|
24
24
|
import { basename, dirname, join, resolve } from "node:path";
|
|
@@ -29,6 +29,7 @@ import { HOSTING_CODE } from "./hosting-codes.js";
|
|
|
29
29
|
import { shippedHostProfile } from "./host-profiles.js";
|
|
30
30
|
import { lv2BundlesOnPath, manifestPlugins } from "./lv2-loader.js";
|
|
31
31
|
import { judgmentPinEntries, pinsFile } from "./pins-file.js";
|
|
32
|
+
import { hostdPinFiles } from "./hostd-pin-files.js";
|
|
32
33
|
import { qualifyTargets } from "./probe-runner.js";
|
|
33
34
|
import { GRID_FULL, parseGridSpec } from "./measurement-grid.js";
|
|
34
35
|
import { memoryBoundOf, parseMemoryLimit } from "./memory-bound.js";
|
|
@@ -89,6 +90,7 @@ export function parseSyncArgs(argv) {
|
|
|
89
90
|
let system = false;
|
|
90
91
|
let force = false;
|
|
91
92
|
let noDistributed = false;
|
|
93
|
+
let noWait = false;
|
|
92
94
|
let help = false;
|
|
93
95
|
for (let i = 0; i < argv.length; i++) {
|
|
94
96
|
const a = argv[i];
|
|
@@ -98,6 +100,8 @@ export function parseSyncArgs(argv) {
|
|
|
98
100
|
force = true;
|
|
99
101
|
else if (a === "--no-distributed")
|
|
100
102
|
noDistributed = true;
|
|
103
|
+
else if (a === "--no-wait")
|
|
104
|
+
noWait = true;
|
|
101
105
|
else if (a === "--help")
|
|
102
106
|
help = true;
|
|
103
107
|
else if (a === "--grid-hosts")
|
|
@@ -114,7 +118,7 @@ export function parseSyncArgs(argv) {
|
|
|
114
118
|
else
|
|
115
119
|
return { ok: false, error: `unknown argument ${a}` };
|
|
116
120
|
}
|
|
117
|
-
return { ok: true, args: { ...(config === undefined ? {} : { config }), system, force, noDistributed, help, values } };
|
|
121
|
+
return { ok: true, args: { ...(config === undefined ? {} : { config }), system, force, noDistributed, noWait, help, values } };
|
|
118
122
|
}
|
|
119
123
|
export function syncHelpText() {
|
|
120
124
|
const rows = SYNC_SETTINGS.map((s) => ` ${`${flagOf(s.key)} <value>`.padEnd(36)}${s.meaning}${s.default === "" ? "" : ` (default: ${s.default})`}`);
|
|
@@ -124,6 +128,7 @@ export function syncHelpText() {
|
|
|
124
128
|
` ${"--config <file>".padEnd(36)}the settings file (default: ${SYNC_CONF}; a missing file is the defaults)`,
|
|
125
129
|
" --system a system service's directories, under /var/lib/omx",
|
|
126
130
|
" --force qualify every plugin again, recorded or not; no distributed record is read",
|
|
131
|
+
" --no-wait a run in progress is not waited for: exit 0, and the holder runs once more at its end",
|
|
127
132
|
" --no-distributed read no distributed record: every plugin not recorded is measured",
|
|
128
133
|
" --grid-hosts the fast grid, the same as --grid hosts (7 cells with the shipped hosts)",
|
|
129
134
|
" --help this text",
|
|
@@ -393,6 +398,21 @@ export function recordedAsIs(item, entry) {
|
|
|
393
398
|
const same = now.length === entry.files.length && now.every((f) => entry.files.some((e) => e.path === f.path && e.sha256 === f.sha256));
|
|
394
399
|
return { same, files: now };
|
|
395
400
|
}
|
|
401
|
+
/**
|
|
402
|
+
* The pin of a judged run with the files plugin-hostd collects for its plugin (plugin-qualify#228): the probe's list is
|
|
403
|
+
* the probe's view, and an add checks the daemon's, so a pin holds the daemon's. No pin when plugin-hostd cannot name
|
|
404
|
+
* them; the plugin is then pinned on its first add (pin_mode first-use), and the log says why.
|
|
405
|
+
*/
|
|
406
|
+
function withHostdFiles(ctx, pin) {
|
|
407
|
+
if (pin === undefined || pin.integrity.files === undefined)
|
|
408
|
+
return pin;
|
|
409
|
+
const r = hostdPinFiles(pin.uri, ctx.settings.lv2Dirs, ctx.env, ...(ctx.pinFilesRun === undefined ? [] : [ctx.pinFilesRun]));
|
|
410
|
+
if (!r.ok) {
|
|
411
|
+
ctx.log(`${pin.uri}: not pinned: ${r.detail}`);
|
|
412
|
+
return undefined;
|
|
413
|
+
}
|
|
414
|
+
return { ...pin, integrity: { ...pin.integrity, files: r.files } };
|
|
415
|
+
}
|
|
396
416
|
/** A judged run's outcome for the host: qualified, refused, or why it was not measured. */
|
|
397
417
|
function outcomeOf(judgment, host) {
|
|
398
418
|
const v = judgment.hosts.find((h) => h.verdict.host === host)?.verdict;
|
|
@@ -428,7 +448,7 @@ function judgedPlugins(ctx, runs) {
|
|
|
428
448
|
const host = ctx.settings.hostProfile.id;
|
|
429
449
|
const entries = runs.map(({ bytes, judgment }) => {
|
|
430
450
|
const { recordPath } = writeQualification(ctx.settings.qualificationDir, bytes, judgment, QUICK_NOT_MEASURED);
|
|
431
|
-
const pin = judgmentPinEntries(judgment, host)[0];
|
|
451
|
+
const pin = withHostdFiles(ctx, judgmentPinEntries(judgment, host)[0]);
|
|
432
452
|
const { outcome, code } = outcomeOf(judgment, host);
|
|
433
453
|
const plugin = { uri: pin?.uri ?? judgment.output.plugin.id, outcome, ...(code === undefined ? {} : { code }), ...(pin === undefined ? {} : { pin }), record: recordPath };
|
|
434
454
|
return { plugin, judgedHere: judgment.hosts.some((h) => h.verdict.host === host) };
|
|
@@ -449,6 +469,8 @@ function runPass(ctx, target, env) {
|
|
|
449
469
|
profiles: [s.hostProfile],
|
|
450
470
|
wallS: s.budgetS,
|
|
451
471
|
env,
|
|
472
|
+
// mod-host and jalv are admitted on the device's LV2 directories, not on the one-bundle world the probe measures in
|
|
473
|
+
admissionLv2Path: s.lv2Dirs,
|
|
452
474
|
});
|
|
453
475
|
}
|
|
454
476
|
/**
|
|
@@ -810,52 +832,132 @@ export async function waitQuiet(dirs, quietS, log) {
|
|
|
810
832
|
}
|
|
811
833
|
}
|
|
812
834
|
}
|
|
835
|
+
/**
|
|
836
|
+
* Why a reader that is not the sync's user (the console, #221) cannot read the descriptors: the directory or one of its
|
|
837
|
+
* parent without search permission for others, the directory or a descriptor without read permission for others. One
|
|
838
|
+
* line each; none when the directory does not exist yet or everything is open.
|
|
839
|
+
*/
|
|
840
|
+
export function descriptorAccessProblems(dir) {
|
|
841
|
+
const problems = [];
|
|
842
|
+
const mode = (path) => {
|
|
843
|
+
try {
|
|
844
|
+
return statSync(path).mode & 0o777;
|
|
845
|
+
}
|
|
846
|
+
catch {
|
|
847
|
+
return undefined;
|
|
848
|
+
}
|
|
849
|
+
};
|
|
850
|
+
const octal = (m) => `0${m.toString(8)}`;
|
|
851
|
+
const top = mode(dir);
|
|
852
|
+
if (top === undefined)
|
|
853
|
+
return problems;
|
|
854
|
+
// the parent too (StateDirectory's /var/lib/omx); not further up, where a private home is a user's own choice
|
|
855
|
+
const parent = dirname(resolve(dir));
|
|
856
|
+
const parentMode = mode(parent);
|
|
857
|
+
if (parentMode !== undefined && (parentMode & 0o001) === 0)
|
|
858
|
+
problems.push(`${parent} is mode ${octal(parentMode)}: other users, the console among them, cannot enter it to read the descriptors`);
|
|
859
|
+
if ((top & 0o004) === 0)
|
|
860
|
+
problems.push(`${dir} is mode ${octal(top)}: other users, the console among them, cannot list the descriptors`);
|
|
861
|
+
let files = [];
|
|
862
|
+
try {
|
|
863
|
+
files = readdirSync(dir).filter((f) => f.endsWith(".json"));
|
|
864
|
+
}
|
|
865
|
+
catch {
|
|
866
|
+
return problems;
|
|
867
|
+
}
|
|
868
|
+
const closed = files.filter((f) => ((mode(join(dir, f)) ?? 0o004) & 0o004) === 0);
|
|
869
|
+
if (closed.length > 0)
|
|
870
|
+
problems.push(`${String(closed.length)} descriptor(s) in ${dir} cannot be read by other users, the console among them (first: ${closed[0]})`);
|
|
871
|
+
return problems;
|
|
872
|
+
}
|
|
813
873
|
export function summaryLine(s) {
|
|
814
874
|
return `qualified ${String(s.qualified)}, skipped ${String(s.skipped)}, refused ${String(s.refused)}, crashed ${String(s.crashed)}, hung ${String(s.hung)}, unmeasured ${String(s.unmeasured)}, distributed ${String(s.distributed)}, ${s.seconds.toFixed(1)} s`;
|
|
815
875
|
}
|
|
816
|
-
/** The
|
|
817
|
-
|
|
876
|
+
/** The exit status `flock -n` returns when the lock is held (-E), told apart from a failure of flock itself. */
|
|
877
|
+
const LOCK_HELD = 99;
|
|
878
|
+
/**
|
|
879
|
+
* The lock of one state file: flock(1) on `<state file>.lock`, held by a child process for as long as this one lives or
|
|
880
|
+
* until `release`, so a crashed run frees it. Waits for the holder, or with `wait` false returns `undefined` at once.
|
|
881
|
+
*/
|
|
882
|
+
export function takeLock(stateFile, wait) {
|
|
818
883
|
const lock = `${stateFile}.lock`;
|
|
819
884
|
mkdirSync(dirname(lock), { recursive: true });
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
885
|
+
const child = spawn("flock", ["-x", "-E", String(LOCK_HELD), ...(wait ? [] : ["-n"]), lock, "sh", "-c", "echo locked; exec cat"], { stdio: ["pipe", "pipe", "inherit"] });
|
|
886
|
+
return new Promise((resolvePromise, reject) => {
|
|
887
|
+
const exited = new Promise((done) => child.once("close", () => done()));
|
|
888
|
+
child.once("error", reject);
|
|
889
|
+
child.stdout.once("data", () => resolvePromise({
|
|
890
|
+
release: () => {
|
|
891
|
+
child.stdin.end();
|
|
892
|
+
return exited;
|
|
893
|
+
},
|
|
894
|
+
}));
|
|
895
|
+
child.once("close", (code) => {
|
|
896
|
+
if (code === LOCK_HELD)
|
|
897
|
+
resolvePromise(undefined);
|
|
898
|
+
else
|
|
899
|
+
reject(new Error(`flock ${lock} failed (exit ${String(code)})`));
|
|
900
|
+
});
|
|
901
|
+
});
|
|
902
|
+
}
|
|
903
|
+
/** What a second run leaves for the holder: one more run at its end, over what changed meanwhile. */
|
|
904
|
+
const againMarker = (stateFile) => `${stateFile}.again`;
|
|
905
|
+
/**
|
|
906
|
+
* One run under the lock: waits for a run in progress, or with `wait` false leaves a marker for it and returns
|
|
907
|
+
* `undefined`. The holder runs once more at its end for every marker left meanwhile.
|
|
908
|
+
*/
|
|
909
|
+
export async function runSync(settings, options = {}) {
|
|
910
|
+
const log = options.log ?? (() => { });
|
|
911
|
+
const marker = againMarker(settings.stateFile);
|
|
912
|
+
let lock = await takeLock(settings.stateFile, options.wait !== false);
|
|
913
|
+
if (lock === undefined) {
|
|
914
|
+
// the marker first, then the lock once more: a holder that finished in between is not left without a successor
|
|
915
|
+
writeFileSync(marker, "");
|
|
916
|
+
lock = await takeLock(settings.stateFile, false);
|
|
917
|
+
if (lock === undefined) {
|
|
918
|
+
log(`a run is in progress (${settings.stateFile}.lock); it runs once more at its end over what changed`);
|
|
919
|
+
return undefined;
|
|
826
920
|
}
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
catch {
|
|
838
|
-
// its process is gone
|
|
839
|
-
}
|
|
840
|
-
unlinkSync(lock);
|
|
921
|
+
}
|
|
922
|
+
try {
|
|
923
|
+
let total;
|
|
924
|
+
for (;;) {
|
|
925
|
+
rmSync(marker, { force: true });
|
|
926
|
+
const one = await runLocked(settings, options);
|
|
927
|
+
total = total === undefined ? one : addSummaries(total, one);
|
|
928
|
+
if (!existsSync(marker))
|
|
929
|
+
return total;
|
|
930
|
+
log("a run was asked for while this one ran; running once more");
|
|
841
931
|
}
|
|
842
932
|
}
|
|
843
|
-
|
|
933
|
+
finally {
|
|
934
|
+
await lock.release();
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
function addSummaries(a, b) {
|
|
938
|
+
const sent = (a.sent ?? 0) + (b.sent ?? 0);
|
|
939
|
+
return {
|
|
940
|
+
qualified: a.qualified + b.qualified,
|
|
941
|
+
skipped: a.skipped + b.skipped,
|
|
942
|
+
refused: a.refused + b.refused,
|
|
943
|
+
crashed: a.crashed + b.crashed,
|
|
944
|
+
hung: a.hung + b.hung,
|
|
945
|
+
unmeasured: a.unmeasured + b.unmeasured,
|
|
946
|
+
distributed: a.distributed + b.distributed,
|
|
947
|
+
seconds: a.seconds + b.seconds,
|
|
948
|
+
...(sent === 0 ? {} : { sent }),
|
|
949
|
+
};
|
|
844
950
|
}
|
|
845
951
|
/**
|
|
846
952
|
* One run: wait for quiet, qualify what is new or changed, drop what is gone, write the state, the records, the
|
|
847
953
|
* descriptors and the pin file, and send the changed pins to a running daemon. The state and the pin file are written
|
|
848
|
-
* whole after every item, so a run cut short keeps all it finished.
|
|
954
|
+
* whole after every item, so a run cut short keeps all it finished.
|
|
849
955
|
*/
|
|
850
|
-
|
|
956
|
+
async function runLocked(settings, options) {
|
|
851
957
|
const log = options.log ?? (() => { });
|
|
852
958
|
const env = options.env ?? process.env;
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
log(`another sync holds ${settings.stateFile}.lock; this one does nothing`);
|
|
856
|
-
return undefined;
|
|
857
|
-
}
|
|
858
|
-
try {
|
|
959
|
+
log("sync run begins");
|
|
960
|
+
{
|
|
859
961
|
const started = Date.now();
|
|
860
962
|
const dirs = [...settings.clapDirs, ...settings.lv2Dirs];
|
|
861
963
|
await waitQuiet(dirs, settings.settleS, log);
|
|
@@ -935,6 +1037,8 @@ export async function runSync(settings, options = {}) {
|
|
|
935
1037
|
if (after !== before)
|
|
936
1038
|
writeFileWhole(settings.pinFile, after);
|
|
937
1039
|
writeLv2Descriptors(ctx, lv2Pinned);
|
|
1040
|
+
for (const line of descriptorAccessProblems(settings.descriptorDir))
|
|
1041
|
+
log(line);
|
|
938
1042
|
// the files of a plugin that is gone, or was replaced by other bytes: only when every directory could be read, so
|
|
939
1043
|
// an unreadable one is never taken for an uninstall
|
|
940
1044
|
if (unreadable)
|
|
@@ -960,9 +1064,6 @@ export async function runSync(settings, options = {}) {
|
|
|
960
1064
|
const taken = replies.filter((r) => r === "resp 0").length;
|
|
961
1065
|
return { ...count, seconds: (Date.now() - started) / 1000, ...(taken === 0 ? {} : { sent: taken }) };
|
|
962
1066
|
}
|
|
963
|
-
finally {
|
|
964
|
-
unlock();
|
|
965
|
-
}
|
|
966
1067
|
}
|
|
967
1068
|
/** What a failed descriptor pass says: plainly, once, when the lilv binding is what is missing (a suite without python3-lilv). */
|
|
968
1069
|
export function lv2DescriptorFailure(status, error, stderr) {
|