## Problem Track B hosted tests(`LogosHostedTests`,app-hosted `xcodebuild test`)中,**每個 test case 執行完在 teardown 階段 SIGSEGV**:`XCTMemoryChecker _assertInvalidObjectsDeallocatedAfterScope:` → `objc_autoreleasePoolPop` → `objc_release` 打到已釋放位址(`EXC_BAD_ACCESS / KERN_INVALID_ADDRESS`)。host app 整個死掉,xcodebuild 以「Restarting after unexpected exit」重啟、續跑下一個 case,直到 case 燒完後回報 `Executed 0 tests ... passed`,aggregate 卻是 `** TEST FAILED **`。 實測序列(`-only-testing:LogosHostedTests/RendererAdoptionTests`):每次啟動執行一個 case(case 本體有跑,例如 `test_metalEngagesWhenWindowAttached` 有打出 `[renderer] terminal Metal renderer engaged`)→ teardown 崩 → 重啟 → 下一個 case。三個 case 三次崩。 ## Type bug ## 時間軸(排除誤歸因) - 這是 **#104 修復後 Track B 首次真正跑起來** 才觀測得到的(#104 之前 runner 根本啟不動)。 - crash 簽名在 #104 的任何程式碼改動**之前**已存在(`Logos-2026-08-01-154608/154612.ips`,與其後的 `161753/161755/161758.ips` 完全同 stack)⇒ 非 #104 的 bundle-id / registry 改動引入。 - #78 曾把 hosted host 的 claude spawn 與 Metal engagement gate 掉以消滅「bystander crash」,當時的驗證註記是「confirmation pending a signed hosted run」。本 issue 即那次 pending 驗證的實測結果:**crash 仍在**,但型態是每 case teardown 的 autorelease over-release,而非 #78 描述的 2 秒後 bystander 崩潰——兩者是否同根因需要 diagnose。 ## Evidence - Crash reports:`~/Library/Logs/DiagnosticReports/Logos-2026-08-01-{154608,154612,161753,161755,161758}.ips`,faulting stack 一致: ``` objc_release AutoreleasePoolPage::releaseUntil objc_autoreleasePoolPop -[XCTMemoryChecker _assertInvalidObjectsDeallocatedAfterScope:] -[XCTestCase assertInvalidObjectsDeallocatedAfterScope:] ``` - 嫌疑方向:`TeedLocalProcessTerminalView`(SwiftTerm fork)在 test scope 結束、autorelease drain 時 over-release / 錯 thread dealloc;或 macOS 27 seed(26A5388g)× SDK 26.5 的互動。 ## Expected `xcodebuild test`(Track B hosted)單一 launch 跑完整個 suite,無 host 崩潰、aggregate 綠燈。 ## Impact - Track B 的結果**可用但骯髒**:case 本體有執行(斷言有跑、有輸出),但每 case 付一次 app 重啟成本,且 aggregate 恆為 FAILED——CI/腳本無法以 exit code 判定 hosted 綠紅。 - Related: #78(gating 的 pending 驗證)、#104(解除 launch 阻塞後才觀測得到)、#23(renderer wiring tests)。 ## Notes - 環境:macOS 27.0(26A5388g)、Xcode SDK macosx26.5、Apple M5 Max ## Current Status **Phase**: diagnosed
Problem
Track B hosted tests(
LogosHostedTests,app-hostedxcodebuild test)中,每個 test case 執行完在 teardown 階段 SIGSEGV:XCTMemoryChecker _assertInvalidObjectsDeallocatedAfterScope:→objc_autoreleasePoolPop→objc_release打到已釋放位址(EXC_BAD_ACCESS / KERN_INVALID_ADDRESS)。host app 整個死掉,xcodebuild 以「Restarting after unexpected exit」重啟、續跑下一個 case,直到 case 燒完後回報Executed 0 tests ... passed,aggregate 卻是** TEST FAILED **。實測序列(
-only-testing:LogosHostedTests/RendererAdoptionTests):每次啟動執行一個 case(case 本體有跑,例如test_metalEngagesWhenWindowAttached有打出[renderer] terminal Metal renderer engaged)→ teardown 崩 → 重啟 → 下一個 case。三個 case 三次崩。Type
bug
時間軸(排除誤歸因)
Logos-2026-08-01-154608/154612.ips,與其後的161753/161755/161758.ips完全同 stack)⇒ 非 Track B 完全失效:app-hosted test runner 無法啟動(LaunchServices 錯誤),所有 hosted 測試跑不到 #104 的 bundle-id / registry 改動引入。Evidence
~/Library/Logs/DiagnosticReports/Logos-2026-08-01-{154608,154612,161753,161755,161758}.ips,faulting stack 一致:TeedLocalProcessTerminalView(SwiftTerm fork)在 test scope 結束、autorelease drain 時 over-release / 錯 thread dealloc;或 macOS 27 seed(26A5388g)× SDK 26.5 的互動。Expected
xcodebuild test(Track B hosted)單一 launch 跑完整個 suite,無 host 崩潰、aggregate 綠燈。Impact
Notes
Current Status
Phase: diagnosed