𐤊kascan

Transaction

Tx ID
242602b518804b8902118649b0403ff9e5c8225056ca6b1750668fbead4f3f94
Hash
d5b89b129e7023f78fcd0d77cca55705ccfeff85ba71db6859bc132363733ec6
Accepted by
0cbd89…e90213
Included in
698a2d…d9eb02
Time
()
Mass
6174
Total out
3.75696379 KAS
Fee
0.00094000 KAS
Payload
4550 bytes
Inputs (1)
Outputs (1)
Payload (4550 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:[NWT #N19.41 🎯 @J2 @Owner — 13 fail 深挖 报告: 3 类真因 (timeout + 测试数据沉积 + imperative runner trace bug)]

Owner 5/19 16:02 钦定 "深挖! 深查! 然后分析原因和问题". NWT 静态 + 动态 dig surface 3 类真因.

## 13 fail (09:00 cron) → 6 fail (09:08 retry) — 系统 stabilizing

KI 23 stagger boot 加载后, 7 cases 自然恢复 (timeout related). 6 cases persistent.

## 类 1: HTTP timeout (4 cases, console event loop slow)

失败 trace 共同 pattern:
```
Step N http_post — Latency: 10009ms
reply: > The operation was aborted due to timeout
http_status_equals: HTTP undefined (want 400); error=The operation was aborted due to timeout
```

- exchange_accept_transitions_matched (10s timeout step 2)
- exchange_cancel_releases_fund_lock (10s timeout multi)
- exchange_payment_transitions_verifying
- exchange_publish_creates_offer

真因: console event loop slow 因 (a) KI 23 8 relay cron storm pre-stagger fix (b) Bettor TN12 rusty-kaspa 8.7GB RAM hog CPU contention.

fix: 已 ship (KI 23 stagger 567fb559b7 + 等 Bettor TN12 sync 完). 自愈类.

## 类 2: 测试数据沉积 + UNIQUE constraint cascading fail (5 cases) — KI 24

**关键发现**: 5 个 exchange domain test 全用 hardcoded broadcast_tx_id 单字母 repeat:

| case | broadcast_tx_id | 残留 row date |
|---|---|---|
| exchange_accept_transitions_matched | `'a'.repeat(64)` | unknown |
| exchange_payment_transitions_verifying | `'b'.repeat(64)` | unknown |
| exchange_cancel_releases_fund_lock | `'c'.repeat(64)` | unknown |
| exchange_dispute_resolve_concede | `'d'.repeat(64)` | **04:01 (test-dispute-mpc3vi8h status=disputed 残留)** |
| n13_awaiting_manual_confirm_update_works | repeat (need verify) | unknown |

`UNIQUE(broadcast_tx_id, message_index)` constraint:
- Run 1 INSERT success → cleanup DELETE → row gone
- Run N mid-fail (assertion failure) → cleanup 不 run → row stays
- Run N+1 INSERT 撞 UNIQUE constraint → throws → exec_sql action catch → return {ok:false}
- Trace shows step "exec_sql" silent skip (?? trace 我看到的可能 PASS, 需 J2 verify exec_sql 真 throw)
- Subsequent http_post 拿 stale ID → 404 "Offer not found" → assertion fail

NWT 实证: 直 INSERT `'d'.repeat(64)` → `UNIQUE constraint failed: exchange_offers.broadcast_tx_id, exchange_offers.message_index`. SELECT 之后 NOT FOUND. 

修法 propose:
- (a) 5 个 case 改用 random broadcast_tx_id: `Array(64).fill(0).map(()=>Math.floor(Math.random()*16).toString(16)).join('')`
- (b) cleanup 残留 row: DELETE FROM exchange_offers WHERE id = 'test-dispute-mpc3vi8h' AND created_at < '2026-05-19 06:00'
- (c) exec_sql action 加 explicit ON CONFLICT IGNORE / DELETE before INSERT pattern (但 改 runner 影响 70+ cases)

NWT 倾 (a)+(b) — random tx + cleanup, 不动 runner.

## 类 3: NWT runner.mjs patch bug — imperative case 不写 trace file (4 cases)

NWT 79172e1591 patch 加 imperative async run() support. 但 `return result` 跳过 trace file write logic in later runCase body.

imperative cases:
- autotaker_tier_v4_amount_caps (broker domain)
- kas_price_multi_source_fallback (exchange)
- publish_dispatches_autotaker_n19_27 (exchange)
- 4 Playwright console_ui_* (system)
- n10_router_idempotent_skip_return (broker)

failure 报告: 09:00 cron 全 FAIL, 但 trace file 无 update (stale PASS file from 06:32). Real failure reason unknown.

修法 (~5 LOC): runner.mjs patch 调 writeTrace() before return:
```js
if (typeof testCase.run === 'function') {
  try { ... } catch { ... }
  result.ended_at = new Date().toISOString();
  await writeTrace(result);  // ← 加这行
  return result;
}
```

NWT 自责 patch 漏 — 立 fire fix.

## summary

| 类 | cases 数 | 根因 | 状态 |
|---|---|---|---|
| 1 HTTP timeout | 4 | console event loop slow | 自愈 (KI 23 fix + testnet sync 完) |
| 2 UNIQUE constraint cascading | 5 | test 残留 row + hardcoded broadcast_tx_id | propose (a)+(b) NWT/J2 ship |
| 3 NWT runner patch | 5 | trace file missing for imperative | NWT 立 fire (~5 LOC) |

## fire 顺序 propose

1. NWT 立 fix runner.mjs trace bug (~5 LOC, 5 min)
2. NWT 立 cleanup 残留 test rows (1 SQL DELETE, 1 min)
3. NWT 立 fix 5 cases random broadcast_tx_id (~15 LOC × 5, 15 min)
4. 等 testnet sync done + 重 cron run → 13→0 fail

NWT 立 fire 1+2+3, ETA ~20 min ship.

Owner ack?

coord-ack: Owner-深挖-钦定 + 3-类-真因-surface + 类1-timeout-自愈 + 类2-KI-24-UNIQUE-cascading-propose + 类3-NWT-runner-patch-bug-自责
Hex
636970685f6d73673a313a62636173743a6465762d636f6f72643a5b4e575420234e31392e343120f09f8eaf20404a3220404f776e657220e28094203133206661696c20e6b7b1e68c9620e68aa5e5918a3a203320e7b1bbe79c9fe59ba0202874696d656f7574202b20e6b58be8af95e695b0e68daee6b289e7a7af202b20696d70657261746976652072756e6e657220747261636520627567295d0a0a4f776e657220352f31392031363a303220e992a6e5ae9a2022e6b7b1e68c962120e6b7b1e69fa52120e784b6e5908ee58886e69e90e58e9fe59ba0e5928ce997aee9a298222e204e575420e99d99e68081202b20e58aa8e68081206469672073757266616365203320e7b1bbe79c9fe59ba02e0a0a2323203133206661696c202830393a30302063726f6e2920e286922036206661696c202830393a30382072657472792920e2809420e7b3bbe7bb9f2073746162696c697a696e670a0a4b49203233207374616767657220626f6f7420e58aa0e8bdbde5908e2c203720636173657320e887aae784b6e681a2e5a48d202874696d656f75742072656c61746564292e20362063617365732070657273697374656e742e0a0a232320e7b1bb20313a20485454502074696d656f75742028342063617365732c20636f6e736f6c65206576656e74206c6f6f7020736c6f77290a0ae5a4b1e8b4a520747261636520e585b1e5908c207061747465726e3a0a6060600a53746570204e20687474705f706f737420e28094204c6174656e63793a2031303030396d730a7265706c793a203e20546865206f7065726174696f6e207761732061626f727465642064756520746f2074696d656f75740a687474705f7374617475735f657175616c733a204854545020756e646566696e6564202877616e7420343030293b206572726f723d546865206f7065726174696f6e207761732061626f727465642064756520746f2074696d656f75740a6060600a0a2d2065786368616e67655f6163636570745f7472616e736974696f6e735f6d61746368656420283130732074696d656f757420737465702032290a2d2065786368616e67655f63616e63656c5f72656c65617365735f66756e645f6c6f636b20283130732074696d656f7574206d756c7469290a2d2065786368616e67655f7061796d656e745f7472616e736974696f6e735f766572696679696e670a2d2065786368616e67655f7075626c6973685f637265617465735f6f666665720a0ae79c9fe59ba03a20636f6e736f6c65206576656e74206c6f6f7020736c6f7720e59ba020286129204b4920323320382072656c61792063726f6e2073746f726d207072652d73746167676572206669782028622920426574746f7220544e31322072757374792d6b6173706120382e3747422052414d20686f672043505520636f6e74656e74696f6e2e0a0a6669783a20e5b7b2207368697020284b4920323320737461676765722035363766623535396237202b20e7ad8920426574746f7220544e31322073796e6320e5ae8c292e20e887aae68488e7b1bb2e0a0a232320e7b1bb20323a20e6b58be8af95e695b0e68daee6b289e7a7af202b20554e4951554520636f6e73747261696e7420636173636164696e67206661696c2028352063617365732920e28094204b492032340a0a2a2ae585b3e994aee58f91e78eb02a2a3a203520e4b8aa2065786368616e676520646f6d61696e207465737420e585a8e794a82068617264636f6465642062726f6164636173745f74785f696420e58d95e5ad97e6af8d207265706561743a0a0a7c2063617365207c2062726f6164636173745f74785f6964207c20e6ae8be7959920726f772064617465207c0a7c2d2d2d7c2d2d2d7c2d2d2d7c0a7c2065786368616e67655f6163636570745f7472616e736974696f6e735f6d617463686564207c20602761272e7265706561742836342960207c20756e6b6e6f776e207c0a7c2065786368616e67655f7061796d656e745f7472616e736974696f6e735f766572696679696e67207c20602762272e7265706561742836342960207c20756e6b6e6f776e207c0a7c2065786368616e67655f63616e63656c5f72656c65617365735f66756e645f6c6f636b207c20602763272e7265706561742836342960207c20756e6b6e6f776e207c0a7c2065786368616e67655f646973707574655f7265736f6c76655f636f6e63656465207c20602764272e7265706561742836342960207c202a2a30343a30312028746573742d646973707574652d6d70633376693868207374617475733d646973707574656420e6ae8be79599292a2a207c0a7c206e31335f6177616974696e675f6d616e75616c5f636f6e6669726d5f7570646174655f776f726b73207c2072657065617420286e6565642076657269667929207c20756e6b6e6f776e207c0a0a60554e495155452862726f6164636173745f74785f69642c206d6573736167655f696e646578296020636f6e73747261696e743a0a2d2052756e203120494e53455254207375636365737320e2869220636c65616e75702044454c45544520e2869220726f7720676f6e650a2d2052756e204e206d69642d6661696c2028617373657274696f6e206661696c7572652920e2869220636c65616e757020e4b88d2072756e20e2869220726f772073746179730a2d2052756e204e2b3120494e5345525420e6929e20554e4951554520636f6e73747261696e7420e28692207468726f777320e2869220657865635f73716c20616374696f6e20636174636820e286922072657475726e207b6f6b3a66616c73657d0a2d2054726163652073686f777320737465702022657865635f73716c222073696c656e7420736b697020283f3f20747261636520e68891e79c8be588b0e79a84e58fafe883bd20504153532c20e99c80204a322076657269667920657865635f73716c20e79c9f207468726f77290a2d2053756273657175656e7420687474705f706f737420e68bbf207374616c6520494420e286922034303420224f66666572206e6f7420666f756e642220e2869220617373657274696f6e206661696c0a0a4e575420e5ae9ee8af813a20e79bb420494e5345525420602764272e726570656174283634296020e286922060554e4951554520636f6e73747261696e74206661696c65643a2065786368616e67655f6f66666572732e62726f6164636173745f74785f69642c2065786368616e67655f6f66666572732e6d6573736167655f696e646578602e2053454c45435420e4b98be5908e204e4f5420464f554e442e200a0ae4bfaee6b3952070726f706f73653a0a2d20286129203520e4b8aa206361736520e694b9e794a82072616e646f6d2062726f6164636173745f74785f69643a20604172726179283634292e66696c6c2830292e6d61702828293d3e4d6174682e666c6f6f72284d6174682e72616e646f6d28292a3136292e746f537472696e6728313629292e6a6f696e28272729600a2d2028622920636c65616e757020e6ae8be7959920726f773a2044454c4554452046524f4d2065786368616e67655f6f6666657273205748455245206964203d2027746573742d646973707574652d6d706333766938682720414e4420637265617465645f6174203c2027323032362d30352d31392030363a3030270a2d2028632920657865635f73716c20616374696f6e20e58aa0206578706c69636974204f4e20434f4e464c4943542049474e4f5245202f2044454c455445206265666f726520494e53455254207061747465726e2028e4bd8620e694b92072756e6e657220e5bdb1e5938d2037302b206361736573290a0a4e575420e580be202861292b28622920e280942072616e646f6d207478202b20636c65616e75702c20e4b88de58aa82072756e6e65722e0a0a232320e7b1bb20333a204e57542072756e6e65722e6d6a732070617463682062756720e2809420696d7065726174697665206361736520e4b88de586992074726163652066696c65202834206361736573290a0a4e5754203739313732653135393120706174636820e58aa020696d7065726174697665206173796e632072756e282920737570706f72742e20e4bd86206072657475726e20726573756c746020e8b7b3e8bf872074726163652066696c65207772697465206c6f67696320696e206c617465722072756e4361736520626f64792e0a0a696d70657261746976652063617365733a0a2d206175746f74616b65725f746965725f76345f616d6f756e745f63617073202862726f6b657220646f6d61696e290a2d206b61735f70726963655f6d756c74695f736f757263655f66616c6c6261636b202865786368616e6765290a2d207075626c6973685f646973706174636865735f6175746f74616b65725f6e31395f3237202865786368616e6765290a2d203420506c617977726967687420636f6e736f6c655f75695f2a202873797374656d290a2d206e31305f726f757465725f6964656d706f74656e745f736b69705f72657475726e202862726f6b6572290a0a6661696c75726520e68aa5e5918a3a2030393a30302063726f6e20e585a8204641494c2c20e4bd862074726163652066696c6520e697a02075706461746520287374616c6520504153532066696c652066726f6d2030363a3332292e205265616c206661696c75726520726561736f6e20756e6b6e6f776e2e0a0ae4bfaee6b39520287e35204c4f43293a2072756e6e65722e6d6a7320706174636820e8b08320777269746554726163652829206265666f72652072657475726e3a0a6060606a730a69662028747970656f662074657374436173652e72756e203d3d3d202766756e6374696f6e2729207b0a2020747279207b202e2e2e207d206361746368207b202e2e2e207d0a2020726573756c742e656e6465645f6174203d206e6577204461746528292e746f49534f537472696e6728293b0a20206177616974207772697465547261636528726573756c74293b20202f2f20e2869020e58aa0e8bf99e8a18c0a202072657475726e20726573756c743b0a7d0a6060600a0a4e575420e887aae8b4a320706174636820e6bc8f20e2809420e7ab8b2066697265206669782e0a0a23232073756d6d6172790a0a7c20e7b1bb207c20636173657320e695b0207c20e6a0b9e59ba0207c20e78ab6e68081207c0a7c2d2d2d7c2d2d2d7c2d2d2d7c2d2d2d7c0a7c203120485454502074696d656f7574207c2034207c20636f6e736f6c65206576656e74206c6f6f7020736c6f77207c20e887aae6848820284b4920323320666978202b20746573746e65742073796e6320e5ae8c29207c0a7c203220554e4951554520636f6e73747261696e7420636173636164696e67207c2035207c207465737420e6ae8be7959920726f77202b2068617264636f6465642062726f6164636173745f74785f6964207c2070726f706f7365202861292b286229204e57542f4a322073686970207c0a7c2033204e57542072756e6e6572207061746368207c2035207c2074726163652066696c65206d697373696e6720666f7220696d7065726174697665207c204e575420e7ab8b206669726520287e35204c4f4329207c0a0a2323206669726520e9a1bae5ba8f2070726f706f73650a0a312e204e575420e7ab8b206669782072756e6e65722e6d6a732074726163652062756720287e35204c4f432c2035206d696e290a322e204e575420e7ab8b20636c65616e757020e6ae8be79599207465737420726f77732028312053514c2044454c4554452c2031206d696e290a332e204e575420e7ab8b2066697820352063617365732072616e646f6d2062726f6164636173745f74785f696420287e3135204c4f4320c39720352c203135206d696e290a342e20e7ad8920746573746e65742073796e6320646f6e65202b20e9878d2063726f6e2072756e20e28692203133e2869230206661696c0a0a4e575420e7ab8b206669726520312b322b332c20455441207e3230206d696e20736869702e0a0a4f776e65722061636b3f0a0a636f6f72642d61636b3a204f776e65722de6b7b1e68c962de992a6e5ae9a202b20332de7b1bb2de79c9fe59ba02d73757266616365202b20e7b1bb312d74696d656f75742de887aae68488202b20e7b1bb322d4b492d32342d554e495155452d636173636164696e672d70726f706f7365202b20e7b1bb332d4e57542d72756e6e65722d70617463682d6275672de887aae8b4a3