{
  "diagnostic_only": true,
  "publishable": false,
  "network_benchmark": false,
  "verified_controls": [
    {
      "variant": "baseline",
      "diagnostic_only": true,
      "publishable": false,
      "command": [
        "/usr/bin/java",
        "-XX:-TieredCompilation",
        "-XX:+UnlockDiagnosticVMOptions",
        "-XX:+LogCompilation",
        "-XX:LogFile=/tmp/libhft-java-cache-trap-20260910-DkQ1ut/baseline-v2/jit.xml",
        "-XX:CompileCommand=dontinline,com/atrekes/libhft/PureJavaHftSession$SeenNewOrderSingleClOrdIds.remember",
        "-Xlog:jit+compilation=debug:stdout:timenanos,uptimenanos,pid,tid,level,tags",
        "-cp",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/classes:/usr/local/libexec/libhft-bench/java-fix/libs/libhft-java-0.1.0-SNAPSHOT.jar",
        "CacheTrap"
      ],
      "installed_jar": "/usr/local/libexec/libhft-bench/java-fix/libs/libhft-java-0.1.0-SNAPSHOT.jar",
      "installed_jar_sha256": "e1a8b47d8eb8ff3cac84ca08e436ea93c1fafe4ff4310c11b49700ab3f5c4116",
      "cache_traps": [
        {
          "thread": "1159090",
          "reason": "unstable_if",
          "action": "reinterpret",
          "debug_id": "0",
          "compile_id": "45",
          "compiler": "c2",
          "stamp": "0.216",
          "frames": [
            {
              "bci": "119",
              "method": "com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds remember ([BI)V",
              "bytes": "140",
              "count": "1613",
              "backedge_count": "25808",
              "iicount": "1613"
            }
          ]
        },
        {
          "thread": "1159090",
          "reason": "unstable_if",
          "action": "reinterpret",
          "debug_id": "0",
          "compile_id": "46",
          "compiler": "c2",
          "count": "1",
          "stamp": "2.679",
          "frames": [
            {
              "bci": "89",
              "method": "com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds remember ([BI)V",
              "bytes": "140",
              "count": "2718",
              "backedge_count": "43488",
              "iicount": "2718",
              "decompiles": "1",
              "unstable_if_traps": "1"
            }
          ]
        }
      ],
      "cache_jit_lines": [
        "[1106007070769369ns][195654870ns][1159089][1159102][debug][jit,compilation]   45             com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds::remember (140 bytes)",
        "[1106007090800987ns][215686473ns][1159089][1159090][debug][jit,compilation]   45             com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds::remember (140 bytes)   made not entrant",
        "[1106007103332715ns][228218217ns][1159089][1159107][debug][jit,compilation]   46             com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds::remember (140 bytes)",
        "[1106009554345680ns][2679231143ns][1159089][1159090][debug][jit,compilation]   46             com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds::remember (140 bytes)   made not entrant",
        "[1106009566555065ns][2691440554ns][1159089][1159102][debug][jit,compilation]   51             com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds::remember (140 bytes)"
      ],
      "probe_lines": [
        "cache_probe phase=warmup count=20000",
        "cache_probe phase=repeated_ids count=20000",
        "cache_probe marker=58 duration_ns=1643",
        "cache_probe marker=59 duration_ns=2432",
        "cache_probe marker=60 duration_ns=3193",
        "cache_probe marker=61 duration_ns=66190",
        "cache_probe marker=62 duration_ns=6135",
        "cache_probe marker=63 duration_ns=3046",
        "cache_probe marker=64 duration_ns=2748",
        "cache_probe marker=65 duration_ns=2675",
        "cache_probe marker=66 duration_ns=2828",
        "cache_probe marker=67 duration_ns=2790",
        "cache_probe marker=68 duration_ns=2820",
        "cache_probe class_origin=file:/usr/local/libexec/libhft-bench/java-fix/libs/libhft-java-0.1.0-SNAPSHOT.jar"
      ],
      "hashes": {
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/CacheTrap.java": "d339c2e3c8243b14cd821a8a9d0549dc287f3adb586da0f84c89a61d48da2aaa",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/classes/CacheTrap.class": "c19e80bb0d5aaa122ef14d453556a678624c3fc4ebd16abe64bca68ce3c39009",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/run-probe-v2.py": "083c3b27fcf89db18b27b689a52bff80c85e08710013b3fed5ff313ba1526693",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/baseline-v2/jit.xml": "32a45dbe859bdfaf122823f5c16b508787420b8df230dc4389e175c948f18af1",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/baseline-v2/stdout.log": "ee47697d9c8edcc2e979223a03fb9fc083727287e1f854e92162d9647c7954ca"
      },
      "limitations": [
        "MethodHandle invocation with remember excluded from inlining is not the network benchmark.",
        "These CPU-local durations are not latency matrix values or a continuous hardware profile."
      ]
    },
    {
      "variant": "no-method-traps",
      "diagnostic_only": true,
      "publishable": false,
      "command": [
        "/usr/bin/java",
        "-XX:-TieredCompilation",
        "-XX:+UnlockDiagnosticVMOptions",
        "-XX:+LogCompilation",
        "-XX:LogFile=/tmp/libhft-java-cache-trap-20260910-DkQ1ut/no-method-traps-v2/jit.xml",
        "-XX:CompileCommand=dontinline,com/atrekes/libhft/PureJavaHftSession$SeenNewOrderSingleClOrdIds.remember",
        "-Xlog:jit+compilation=debug:stdout:timenanos,uptimenanos,pid,tid,level,tags",
        "-XX:PerMethodTrapLimit=0",
        "-cp",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/classes:/usr/local/libexec/libhft-bench/java-fix/libs/libhft-java-0.1.0-SNAPSHOT.jar",
        "CacheTrap"
      ],
      "installed_jar": "/usr/local/libexec/libhft-bench/java-fix/libs/libhft-java-0.1.0-SNAPSHOT.jar",
      "installed_jar_sha256": "e1a8b47d8eb8ff3cac84ca08e436ea93c1fafe4ff4310c11b49700ab3f5c4116",
      "cache_traps": [],
      "cache_jit_lines": [
        "[1106010262690866ns][194223820ns][1159110][1159123][debug][jit,compilation]   44             com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds::remember (140 bytes)"
      ],
      "probe_lines": [
        "cache_probe phase=warmup count=20000",
        "cache_probe phase=repeated_ids count=20000",
        "cache_probe marker=58 duration_ns=120",
        "cache_probe marker=59 duration_ns=116",
        "cache_probe marker=60 duration_ns=91",
        "cache_probe marker=61 duration_ns=10099",
        "cache_probe marker=62 duration_ns=147",
        "cache_probe marker=63 duration_ns=98",
        "cache_probe marker=64 duration_ns=99",
        "cache_probe marker=65 duration_ns=104",
        "cache_probe marker=66 duration_ns=122",
        "cache_probe marker=67 duration_ns=120",
        "cache_probe marker=68 duration_ns=111",
        "cache_probe class_origin=file:/usr/local/libexec/libhft-bench/java-fix/libs/libhft-java-0.1.0-SNAPSHOT.jar"
      ],
      "hashes": {
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/CacheTrap.java": "d339c2e3c8243b14cd821a8a9d0549dc287f3adb586da0f84c89a61d48da2aaa",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/classes/CacheTrap.class": "c19e80bb0d5aaa122ef14d453556a678624c3fc4ebd16abe64bca68ce3c39009",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/run-probe-v2.py": "083c3b27fcf89db18b27b689a52bff80c85e08710013b3fed5ff313ba1526693",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/no-method-traps-v2/jit.xml": "d7a44cfe7eb6ea704b4b17edaa30e85e937f05b83a28f387c2123364d5d8708f",
        "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/no-method-traps-v2/stdout.log": "193fe23ae12b3d2c0c6020949f05f502d382f71736b3da3ad061c421669d40dc"
      },
      "limitations": [
        "MethodHandle invocation with remember excluded from inlining is not the network benchmark.",
        "These CPU-local durations are not latency matrix values or a continuous hardware profile."
      ]
    }
  ],
  "installed_cache_bytecode": "Compiled from \"PureJavaHftSession.java\"\nfinal class com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds {\n  private static final int CAPACITY;\n\n  private static final int MASK;\n\n  private static final int PROBE_LIMIT;\n\n  private final int[] hashes;\n\n  private final int[] lengths;\n\n  private final byte[] values;\n\n  private int nextEvictOffset;\n\n  private com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds();\n    Code:\n       0: aload_0\n       1: invokespecial #7                  // Method java/lang/Object.\"<init>\":()V\n       4: aload_0\n       5: sipush        4096\n       8: newarray       int\n      10: putfield      #10                 // Field hashes:[I\n      13: aload_0\n      14: sipush        4096\n      17: newarray       int\n      19: putfield      #14                 // Field lengths:[I\n      22: aload_0\n      23: ldc           #19                 // int 262144\n      25: newarray       byte\n      27: putfield      #20                 // Field values:[B\n      30: return\n\n  void clear();\n    Code:\n       0: aload_0\n       1: getfield      #14                 // Field lengths:[I\n       4: iconst_0\n       5: invokestatic  #24                 // Method java/util/Arrays.fill:([II)V\n       8: aload_0\n       9: getfield      #10                 // Field hashes:[I\n      12: iconst_0\n      13: invokestatic  #24                 // Method java/util/Arrays.fill:([II)V\n      16: aload_0\n      17: iconst_0\n      18: putfield      #30                 // Field nextEvictOffset:I\n      21: return\n\n  boolean contains(byte[], int);\n    Code:\n       0: iload_2\n       1: ifle          10\n       4: iload_2\n       5: bipush        64\n       7: if_icmple     12\n      10: iconst_0\n      11: ireturn\n      12: aload_1\n      13: iload_2\n      14: invokestatic  #34                 // Method hash:([BI)I\n      17: istore_3\n      18: iload_3\n      19: sipush        4095\n      22: iand\n      23: istore        4\n      25: iconst_0\n      26: istore        5\n      28: iload         5\n      30: bipush        16\n      32: if_icmpge     93\n      35: iload         4\n      37: iload         5\n      39: iadd\n      40: sipush        4095\n      43: iand\n      44: istore        6\n      46: aload_0\n      47: getfield      #14                 // Field lengths:[I\n      50: iload         6\n      52: iaload\n      53: iload_2\n      54: if_icmpne     87\n      57: aload_0\n      58: getfield      #10                 // Field hashes:[I\n      61: iload         6\n      63: iaload\n      64: iload_3\n      65: if_icmpne     87\n      68: aload_0\n      69: getfield      #20                 // Field values:[B\n      72: iload         6\n      74: bipush        64\n      76: imul\n      77: aload_1\n      78: iload_2\n      79: invokestatic  #38                 // Method bytesEqual:([BI[BI)Z\n      82: ifeq          87\n      85: iconst_1\n      86: ireturn\n      87: iinc          5, 1\n      90: goto          28\n      93: iconst_0\n      94: ireturn\n\n  void remember(byte[], int);\n    Code:\n       0: iload_2\n       1: ifle          10\n       4: iload_2\n       5: bipush        64\n       7: if_icmple     11\n      10: return\n      11: aload_1\n      12: iload_2\n      13: invokestatic  #34                 // Method hash:([BI)I\n      16: istore_3\n      17: iload_3\n      18: sipush        4095\n      21: iand\n      22: istore        4\n      24: iconst_m1\n      25: istore        5\n      27: iconst_0\n      28: istore        6\n      30: iload         6\n      32: bipush        16\n      34: if_icmpge     116\n      37: iload         4\n      39: iload         6\n      41: iadd\n      42: sipush        4095\n      45: iand\n      46: istore        7\n      48: aload_0\n      49: getfield      #14                 // Field lengths:[I\n      52: iload         7\n      54: iaload\n      55: ifne          70\n      58: iload         5\n      60: ifge          70\n      63: iload         7\n      65: istore        5\n      67: goto          110\n      70: aload_0\n      71: getfield      #14                 // Field lengths:[I\n      74: iload         7\n      76: iaload\n      77: iload_2\n      78: if_icmpne     110\n      81: aload_0\n      82: getfield      #10                 // Field hashes:[I\n      85: iload         7\n      87: iaload\n      88: iload_3\n      89: if_icmpne     110\n      92: aload_0\n      93: getfield      #20                 // Field values:[B\n      96: iload         7\n      98: bipush        64\n     100: imul\n     101: aload_1\n     102: iload_2\n     103: invokestatic  #38                 // Method bytesEqual:([BI[BI)Z\n     106: ifeq          110\n     109: return\n     110: iinc          6, 1\n     113: goto          30\n     116: aload_0\n     117: iload         5\n     119: iflt          127\n     122: iload         5\n     124: goto          133\n     127: aload_0\n     128: iload         4\n     130: invokespecial #42                 // Method nextEvictionSlot:(I)I\n     133: aload_1\n     134: iload_2\n     135: iload_3\n     136: invokespecial #46                 // Method store:(I[BII)V\n     139: return\n\n  private int nextEvictionSlot(int);\n    Code:\n       0: iload_1\n       1: aload_0\n       2: getfield      #30                 // Field nextEvictOffset:I\n       5: iadd\n       6: sipush        4095\n       9: iand\n      10: istore_2\n      11: aload_0\n      12: aload_0\n      13: getfield      #30                 // Field nextEvictOffset:I\n      16: iconst_1\n      17: iadd\n      18: bipush        15\n      20: iand\n      21: putfield      #30                 // Field nextEvictOffset:I\n      24: iload_2\n      25: ireturn\n\n  private void store(int, byte[], int, int);\n    Code:\n       0: aload_2\n       1: iconst_0\n       2: aload_0\n       3: getfield      #20                 // Field values:[B\n       6: iload_1\n       7: bipush        64\n       9: imul\n      10: iload_3\n      11: invokestatic  #50                 // Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V\n      14: aload_0\n      15: getfield      #10                 // Field hashes:[I\n      18: iload_1\n      19: iload         4\n      21: iastore\n      22: aload_0\n      23: getfield      #14                 // Field lengths:[I\n      26: iload_1\n      27: iload_3\n      28: iastore\n      29: return\n\n  private static int hash(byte[], int);\n    Code:\n       0: ldc           #56                 // int -2128831035\n       2: istore_2\n       3: iconst_0\n       4: istore_3\n       5: iload_3\n       6: iload_1\n       7: if_icmpge     31\n      10: iload_2\n      11: aload_0\n      12: iload_3\n      13: baload\n      14: sipush        255\n      17: iand\n      18: ixor\n      19: istore_2\n      20: iload_2\n      21: ldc           #57                 // int 16777619\n      23: imul\n      24: istore_2\n      25: iinc          3, 1\n      28: goto          5\n      31: iload_2\n      32: ireturn\n\n  private static boolean bytesEqual(byte[], int, byte[], int);\n    Code:\n       0: iconst_0\n       1: istore        4\n       3: iload         4\n       5: iload_3\n       6: if_icmpge     30\n       9: aload_0\n      10: iload_1\n      11: iload         4\n      13: iadd\n      14: baload\n      15: aload_2\n      16: iload         4\n      18: baload\n      19: if_icmpeq     24\n      22: iconst_0\n      23: ireturn\n      24: iinc          4, 1\n      27: goto          3\n      30: iconst_1\n      31: ireturn\n\n  com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds(com.atrekes.libhft.PureJavaHftSession$1);\n    Code:\n       0: aload_0\n       1: invokespecial #3                  // Method \"<init>\":()V\n       4: return\n}\n",
  "bytecode_sha256": "a59b16b37c8f10919ab8b23222e66286817141edb46e6460cc0364368fe12697",
  "initial_attempts": {
    "diagnostic_only": true,
    "publishable": false,
    "cases": [
      {
        "variant": "baseline",
        "status": "invalid planned control",
        "issues": [
          "dontinline used an invalid dotted class/method pattern; JVM printed an error but exited zero.",
          "Initial parser looked above the tty element and falsely returned no runtime traps."
        ],
        "corrected_retained_runtime_cache_traps": [
          {
            "thread": "1158503",
            "reason": "unstable_if",
            "action": "reinterpret",
            "debug_id": "0",
            "compile_id": "45",
            "compiler": "c2",
            "stamp": "0.216",
            "frames": [
              {
                "bci": "119",
                "method": "com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds remember ([BI)V",
                "bytes": "140",
                "count": "1605",
                "backedge_count": "25680",
                "iicount": "1605"
              }
            ]
          },
          {
            "thread": "1158503",
            "reason": "unstable_if",
            "action": "reinterpret",
            "debug_id": "0",
            "compile_id": "46",
            "compiler": "c2",
            "count": "1",
            "stamp": "2.679",
            "frames": [
              {
                "bci": "89",
                "method": "com.atrekes.libhft.PureJavaHftSession$SeenNewOrderSingleClOrdIds remember ([BI)V",
                "bytes": "140",
                "count": "2719",
                "backedge_count": "43504",
                "iicount": "2719",
                "decompiles": "1",
                "unstable_if_traps": "1"
              }
            ]
          }
        ],
        "hashes": {
          "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/baseline/jit.xml": "1b1cf50ac8c294176ff3c866c197807d6480335f13e3da9b4fef0ba0c9a7bb6f",
          "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/baseline/stdout.log": "22b57091413c9554d44fd71b1337b3e9634a543fef327b39bb5adf9e882824bf",
          "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/baseline/review.json": "0e762528fb1d522956c112b8dbb2e82959a1d268a8e8aa6541ab512a3cfe7a9b"
        }
      },
      {
        "variant": "no-method-traps",
        "status": "invalid planned control",
        "issues": [
          "dontinline used an invalid dotted class/method pattern; JVM printed an error but exited zero.",
          "Initial parser looked above the tty element and falsely returned no runtime traps."
        ],
        "corrected_retained_runtime_cache_traps": [],
        "hashes": {
          "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/no-method-traps/jit.xml": "f4911195b4d4b91f9e3d9b80633298171a3f4a603e6d1af27d873e180f066c02",
          "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/no-method-traps/stdout.log": "83164b98b7838c78186642554f9457c8e422afcb82c30ae6d7400dc29307590a",
          "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/no-method-traps/review.json": "9daa737ea342760432388940123a7b9d752d6c6f67d0028c2088414d902f5fb8"
        }
      }
    ]
  },
  "interpretation": {
    "duplicate_probe": "unstable_if at bci89 tests cached hash equality before bytesEqual",
    "initial_fill": "unstable_if at bci119 switches from an empty slot to local eviction",
    "policy_control": "PerMethodTrapLimit=0 produces no runtime uncommon-trap record for this cache in this CPU control"
  },
  "limitations": [
    "MethodHandle invocation and explicit dontinline are CPU-probe-only; no hardware latency is certified.",
    "These logs identify exact trap bytecodes for this replay, not retroactive trap records for earlier network runs.",
    "The zero trap-limit flag changes JVM speculation policy, not the workload or Java correctness checks.",
    "Initial rejected directives and incorrect first XML extraction are retained, not treated as valid controls."
  ],
  "hashes": {
    "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/cpu-review.py": "96747c881019891553c54404a17eb687bec25e9f172ec301f0e3d27b9eceae84",
    "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/initial-probe-review.json": "8290480f635096b5583c52b3dac072075111d4b329ec17585b71419df86190a0",
    "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/baseline-v2/review.json": "66484b59bd1f659f994855aae1dabac2788850fb2005d002afa6a208335a6dd8",
    "/tmp/libhft-java-cache-trap-20260910-DkQ1ut/no-method-traps-v2/review.json": "df8bff27073ee94bcfc8fe77ae4ca285d4569acaf553baedb7f463629d1ebc8b"
  }
}
