Commit 7f1ba1f
committed
Learn the file-IO graph without root, using strace
This makes the file-IO-graph learning pluggable and adds an strace backend,
so a pilot run no longer needs a binary with CAP_SYS_ADMIN. The graph it
produces is the one --remove-files-early already reads back.
- The runner gains --filegraph-backends. Naming several at once runs them
side by side, which is how they are compared. O2DPG_PRODUCE_FILEGRAPH
still selects fanotify and names its monitor.
- The strace backend wraps each task command, so a file access is
attributed by the trace it lands in rather than by walking /proc after
the event. --seccomp-bpf keeps the cost at about 59 us per traced open;
the backend probes for it.
- filegraph_report.py holds the exclusion rules, the ./tfN -> ./tfX
templating, the JSON schema and the graphviz rendering, so the two
analysers cannot drift. analyse_FileIO_v2.py reproduces its previous
output byte for byte.
- compare_reports.py grades one report against another. A missing edge
deletes a file a later task still reads; an extra edge only delays the
deletion. The verdicts EXACT, SAFE and UNSAFE follow that asymmetry.
- tests/equivalence_test.py runs a workflow whose graph is known by
construction and grades every backend against it, in seconds and with no
ALICE software. strace comes out EXACT.
- monitor_fileaccess_v2.cpp spun forever on a queue overflow, because the
overflow branch skipped FAN_EVENT_NEXT and re-tested the same event.
- 33 offline tests come with it, plain unittest so they also run on a
worker node, and a CI job runs them.
Part of the o2dpg_workflow_runner.py refactoring.1 parent d4f14f0 commit 7f1ba1f
15 files changed
Lines changed: 1581 additions & 69 deletions
File tree
- .github/workflows
- MC/workflow_runner/o2dpg_runner
- UTILS/FileIOGraph
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
123 | 137 | | |
124 | 138 | | |
125 | 139 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
15 | | - | |
16 | 14 | | |
17 | 15 | | |
18 | 16 | | |
19 | 17 | | |
20 | 18 | | |
21 | 19 | | |
| 20 | + | |
22 | 21 | | |
23 | 22 | | |
24 | 23 | | |
| |||
100 | 99 | | |
101 | 100 | | |
102 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
103 | 107 | | |
104 | 108 | | |
105 | 109 | | |
| |||
154 | 158 | | |
155 | 159 | | |
156 | 160 | | |
| 161 | + | |
157 | 162 | | |
158 | 163 | | |
159 | 164 | | |
| |||
341 | 346 | | |
342 | 347 | | |
343 | 348 | | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | 349 | | |
361 | 350 | | |
362 | 351 | | |
| |||
409 | 398 | | |
410 | 399 | | |
411 | 400 | | |
| 401 | + | |
412 | 402 | | |
413 | 403 | | |
414 | 404 | | |
| |||
429 | 419 | | |
430 | 420 | | |
431 | 421 | | |
432 | | - | |
433 | | - | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
434 | 425 | | |
435 | 426 | | |
436 | 427 | | |
437 | | - | |
| 428 | + | |
| 429 | + | |
438 | 430 | | |
439 | 431 | | |
440 | | - | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
463 | 435 | | |
464 | 436 | | |
465 | 437 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
40 | | - | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| |||
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
| 94 | + | |
93 | 95 | | |
94 | 96 | | |
| 97 | + | |
95 | 98 | | |
96 | 99 | | |
97 | 100 | | |
| |||
366 | 369 | | |
367 | 370 | | |
368 | 371 | | |
369 | | - | |
| 372 | + | |
370 | 373 | | |
371 | 374 | | |
372 | | - | |
373 | | - | |
| 375 | + | |
374 | 376 | | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
375 | 386 | | |
376 | 387 | | |
377 | 388 | | |
378 | | - | |
379 | 389 | | |
380 | 390 | | |
381 | 391 | | |
| |||
0 commit comments