REPOSITORY SOURCE

two-cpu-teardown-investigation.json

docs/evidence/two-cpu-teardown-investigation.json

1{
2  "baseSource": "21110c2bb689e3cff00025aaaa7687e8f5f2ecc7",
3  "changes": "Bounded long-task/queue diagnostics and explicit slow-render observer departure assertion.",
4  "command": "CI=1 PLAYWRIGHT_EXECUTABLE_PATH=/tmp/dw-browser-test/chrome-linux/headless_shell taskset -c 0,1 npm run test:browser -- tests/browser/multiplayer.spec.ts --grep \"travelers keep walking|graphics recovery\" --trace on",
5  "stats": {
6    "startTime": "2026-10-25T02:39:24.986Z",
7    "duration": 46376.021,
8    "expected": 1,
9    "skipped": 0,
10    "unexpected": 1,
11    "flaky": 0
12  },
13  "departure": "Slow-render case passed, including the surviving peer observing one traveler after observer context close.",
14  "failure": "Following graphics-recovery case fails before device loss: observer page reports Target crashed.",
15  "traceEvidence": [
16    {
17      "file": "test.trace",
18      "callId": "pw:api@49",
19      "endTime": 42298.904,
20      "message": "Error: page.evaluate: Target crashed "
21    },
22    {
23      "file": "test.trace",
24      "callId": "pw:api@53",
25      "endTime": 42322.997,
26      "message": "Error: locator.dispatchEvent: Target crashed \nCall log:\n  - waiting for locator('#export')\n"
27    },
28    {
29      "file": "0-trace.trace",
30      "callId": "call@230",
31      "endTime": 42296.734,
32      "message": "Target crashed "
33    },
34    {
35      "file": "0-trace.trace",
36      "callId": "call@237",
37      "endTime": 42313.319,
38      "message": "Target crashed "
39    }
40  ],
41  "nativeDiagnosis": {
42    "core": "coredumpctl --since \"15 minutes ago\" list /tmp/dw-browser-test/chrome-linux/headless_shell: No coredumps found.",
43    "kernel": "journalctl -k --since \"15 minutes ago\" --grep=\"oom|Out of memory|Killed process|headless|segfault\": no entries.",
44    "memoryAtInspection": {
45      "available": "26 GiB",
46      "swapFree": "110 GiB"
47    },
48    "conclusion": "No native cause established. No system configuration changed; this was an isolated test process."
49  },
50  "nextCapture": "CI enables pw:browser process stderr because a crashed page cannot export its in-page probe.",
51  "passingMovementProbe": {
52    "environment": {
53      "hardwareConcurrency": 2,
54      "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36"
55    },
56    "longTaskSupported": true,
57    "maxLongTask": 707,
58    "longTasks": [
59      {
60        "start": 2849.5999999940395,
61        "duration": 397
62      },
63      {
64        "start": 3249.699999988079,
65        "duration": 184
66      },
67      {
68        "start": 4109.9000000059605,
69        "duration": 398
70      },
71      {
72        "start": 4509.5,
73        "duration": 146
74      },
75      {
76        "start": 5361.199999988079,
77        "duration": 383
78      },
79      {
80        "start": 5746.699999988079,
81        "duration": 75
82      },
83      {
84        "start": 6294.199999988079,
85        "duration": 226
86      },
87      {
88        "start": 6522.299999982119,
89        "duration": 63
90      },
91      {
92        "start": 7552.0999999940395,
93        "duration": 707
94      },
95      {
96        "start": 8259.699999988079,
97        "duration": 439
98      },
99      {
100        "start": 8719.299999982119,
101        "duration": 162
102      },
103      {
104        "start": 9061.799999982119,
105        "duration": 96
106      },
107      {
108        "start": 10271,
109        "duration": 102
110      },
111      {
112        "start": 11611.40000000596,
113        "duration": 174
114      },
115      {
116        "start": 12681.299999982119,
117        "duration": 205
118      }
119    ],
120    "queue": [
121      {
122        "at": 321.69999998807907,
123        "kind": "complete",
124        "queue": 1,
125        "start": 321.40000000596046,
126        "wait": 0.29999998211860657
127      },
128      {
129        "at": 675.5999999940395,
130        "kind": "complete",
131        "queue": 1,
132        "start": 675,
133        "wait": 0.5999999940395355
134      },
135      {
136        "at": 1316.0999999940395,
137        "kind": "submit",
138        "queue": 1,
139        "start": 1315,
140        "duration": 1.0999999940395355
141      },
142      {
143        "at": 1904,
144        "kind": "complete",
145        "queue": 1,
146        "start": 1316.0999999940395,
147        "wait": 587.9000000059605
148      },
149      {
150        "at": 1908.2999999821186,
151        "kind": "submit",
152        "queue": 1,
153        "start": 1907,
154        "duration": 1.2999999821186066
155      },
156      {
157        "at": 2828,
158        "kind": "complete",
159        "queue": 1,
160        "start": 1908.4000000059605,
161        "wait": 919.5999999940395
162      },
163      {
164        "at": 3085.9000000059605,
165        "kind": "submit",
166        "queue": 1,
167        "start": 3085.9000000059605,
168        "duration": 0
169      },
170      {
171        "at": 4104.5,
172        "kind": "complete",
173        "queue": 1,
174        "start": 3085.9000000059605,
175        "wait": 1018.5999999940395
176      },
177      {
178        "at": 4286.9000000059605,
179        "kind": "submit",
180        "queue": 1,
181        "start": 4285.9000000059605,
182        "duration": 1
183      },
184      {
185        "at": 5361.0999999940395,
186        "kind": "complete",
187        "queue": 1,
188        "start": 4286.9000000059605,
189        "wait": 1074.199999988079
190      },
191      {
192        "at": 5440.699999988079,
193        "kind": "submit",
194        "queue": 1,
195        "start": 5440.5999999940395,
196        "duration": 0.09999999403953552
197      },
198      {
199        "at": 6293.4000000059605,
200        "kind": "complete",
201        "queue": 1,
202        "start": 5440.699999988079,
203        "wait": 852.7000000178814
204      },
205      {
206        "at": 6421.199999988079,
207        "kind": "submit",
208        "queue": 1,
209        "start": 6421.199999988079,
210        "duration": 0
211      },
212      {
213        "at": 8259.59999999404,
214        "kind": "complete",
215        "queue": 1,
216        "start": 6421.199999988079,
217        "wait": 1838.4000000059605
218      },
219      {
220        "at": 8466.299999982119,
221        "kind": "submit",
222        "queue": 1,
223        "start": 8466.299999982119,
224        "duration": 0
225      },
226      {
227        "at": 10253,
228        "kind": "complete",
229        "queue": 1,
230        "start": 8466.299999982119,
231        "wait": 1786.7000000178814
232      },
233      {
234        "at": 10324.299999982119,
235        "kind": "submit",
236        "queue": 1,
237        "start": 10322.09999999404,
238        "duration": 2.199999988079071
239      },
240      {
241        "at": 11607.40000000596,
242        "kind": "complete",
243        "queue": 1,
244        "start": 10324.299999982119,
245        "wait": 1283.1000000238419
246      },
247      {
248        "at": 12841.799999982119,
249        "kind": "submit",
250        "queue": 1,
251        "start": 12841.799999982119,
252        "duration": 0
253      }
254    ],
255    "maxFrameGap": 1517.5,
256    "maxWorkerGap": 730.0999999940395,
257    "maxTimerGap": 1190.5999999940395,
258    "graphics": [
259      {
260        "at": 156,
261        "kind": "device-request",
262        "adapter": {
263          "vendor": "google",
264          "architecture": "swiftshader",
265          "device": "",
266          "description": ""
267        }
268      },
269      {
270        "at": 163.09999999403954,
271        "kind": "device-ready"
272      }
273    ]
274  }
275}
276