hacnho commited on
Commit
6a15e46
·
verified ·
1 Parent(s): bce73de

Upload reproduce.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. reproduce.py +73 -0
reproduce.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import json
6
+ import time
7
+ from pathlib import Path
8
+
9
+ from google.api import metric_pb2
10
+
11
+
12
+ ROOT = Path(__file__).resolve().parent
13
+ ARTIFACTS = ROOT / "artifacts"
14
+
15
+
16
+ def vmhwm_kb() -> int | None:
17
+ with open("/proc/self/status", "r", encoding="utf-8", errors="ignore") as fh:
18
+ for line in fh:
19
+ if line.startswith("VmHWM:"):
20
+ return int(line.split()[1])
21
+ return None
22
+
23
+
24
+ def parse_one(path: Path) -> dict:
25
+ start = time.time()
26
+ before = vmhwm_kb()
27
+ msg = metric_pb2.MetricDescriptor()
28
+ msg.ParseFromString(path.read_bytes())
29
+ after = vmhwm_kb()
30
+ return {
31
+ "path": str(path),
32
+ "elapsed": time.time() - start,
33
+ "vmhwm_before_kb": before,
34
+ "vmhwm_after_kb": after,
35
+ "monitored_resource_types_len": len(msg.monitored_resource_types),
36
+ "display_name_len": len(msg.display_name),
37
+ }
38
+
39
+
40
+ def main() -> int:
41
+ parser = argparse.ArgumentParser()
42
+ parser.add_argument("--control", type=Path, default=ARTIFACTS / "control_one_display_name.pb")
43
+ parser.add_argument("--malicious", type=Path, default=ARTIFACTS / "malicious_monitored_resource_types_6000000.pb")
44
+ parser.add_argument("--json-out", type=Path)
45
+ args = parser.parse_args()
46
+
47
+ control = parse_one(args.control)
48
+ malicious = parse_one(args.malicious)
49
+ summary = {
50
+ "format": "Protocol Buffers",
51
+ "protobuf_version": __import__("google.protobuf").protobuf.__version__,
52
+ "entrypoint": "metric_pb2.MetricDescriptor().ParseFromString(...)",
53
+ "control": control,
54
+ "malicious": malicious,
55
+ "delta": {
56
+ "elapsed_ratio": malicious["elapsed"] / max(control["elapsed"], 1e-9),
57
+ "vmhwm_delta_kb": malicious["vmhwm_after_kb"] - control["vmhwm_after_kb"],
58
+ "monitored_resource_types_added": malicious["monitored_resource_types_len"] - control["monitored_resource_types_len"],
59
+ "repro_ok": (
60
+ control["monitored_resource_types_len"] == 0
61
+ and malicious["monitored_resource_types_len"] == 6_000_000
62
+ and malicious["vmhwm_after_kb"] - control["vmhwm_after_kb"] >= 150_000
63
+ ),
64
+ },
65
+ }
66
+ if args.json_out:
67
+ args.json_out.write_text(json.dumps(summary, indent=2) + "\n")
68
+ print(json.dumps(summary, indent=2))
69
+ return 0
70
+
71
+
72
+ if __name__ == "__main__":
73
+ raise SystemExit(main())