Mojolicious controller and WebSocket lifetimes regress with #1642 integration

未關閉
#1,794 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

@fglock 已經在處理了。

開始於 2026年10月24日。

  • #1816 來自 @fglock —— 未關閉
  • #1877 來自 @fglock —— 未關閉

評估

難度
4/5
預估耗時
3-5 天
新手友好度
12/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
java, perl
領域
backend, compilers

研究方向

Start with the failing upstream tests t/mojolicious/app.t (assertion near line 703, 'controller has been destroyed') and t/mojolicious/websocket_lite_app.t (assertion near line 322, missing server push). The issue says the work depends on the unmerged #1642 cleanup, so first confirm its final commit. Done means both tests pass again with focused PerlOnJava regression coverage added. Expect JVM reachability and GC-level reasoning, and check with maintainers before starting.

由索引模型根據 Issue 內容生成。

描述

area:backend area:memory area:runtime bug

Summary

The #1642 cleanup changes appear to introduce two Mojolicious runtime regressions in addition to the DOM behavior being fixed by that work. Please triage after #1642 is merged or its implementation settles; this report records integration evidence and avoids duplicating the weak-reference cleanup fix.

Reproduction and evidence

In a disposable integration checkout merging PerlOnJava3 PR #1777 (47e9bfb78f1ac790143838fafcf92f852147bc2b) with the #1642 work in PerlOnJava5 PR #1746 (46d9200e5553bc645fe38b4ee341433aff8ae958), the upstream Mojolicious tests fail:

  • t/mojolicious/app.t: assertion at line 703 reports controller has been destroyed (system Perl passes all 458 assertions).
  • t/mojolicious/websocket_lite_app.t: assertion at line 322 reports Server push message not received; expected push, got an empty value (system Perl passes all 35 assertions).

Both tests pass on the unmerged PerlOnJava3 #1777 branch using the same Mojolicious source and dependencies. In the integration checkout they fail after the #1642 changes are merged. The focused t/mojo/dom.t test passes in the integration checkout, consistent with the intended DOM cleanup improvement.

The integration build was b124844c9 (test-only merge commit); neither review branch was changed. The full upstream test run used IO::Compress 2.223. The colorized log-format failure in t/mojo/log.t is environment-dependent and is not part of this report.

Expected behavior

A controller used by the active request remains alive through response handling, and a WebSocket server push is delivered to the connected client.

Requested follow-up

After #1642 lands, reproduce these two failures on its final commit, inspect whether the new aggregate cleanup / reachability behavior is reclaiming objects still owned by active requests or WebSocket callbacks, and add focused PerlOnJava regression coverage for each confirmed behavior. The existing upstream tests already provide precise reproductions.

主要語言
Perl
星號
65
分支
8
平均合併
6 小時 33 分鐘
30 天內合併 PR
178

環境準備

  • 提供 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

fglock/PerlOnJava 的其他 Issue

查看 fglock/PerlOnJava 的全部 Issue

相似的 Issue

更多 Perl Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。