Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Dist::Zilla Config::MVP objects spuriously resurrect during global destruction

未关闭
#1,515 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
28/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
活跃
技术栈
perl
领域
compilers

调研方向

Start by running prove -v t/commands/listdeps.t under standard Perl and PerlOnJava, comparing the captured output and the global-destruction diagnostics. Investigate the PerlOnJava ownership and destruction path for the Dist::Zilla object graph, especially Config::MVP::Sequence and Dist::Zilla::MVP::Assembler::Zilla. Done means the focused test and affected command-output assertions no longer receive diagnostics that standard Perl does not produce.

由索引模型根据 Issue 内容生成。

描述

area:cpan-port area:memory area:runtime bug

Summary

PerlOnJava spuriously reaches global-destruction resurrection for Dist::Zilla's Moose/Config::MVP object graph. It emits diagnostics such as:

DESTROY created new reference to dead object 'Config::MVP::Sequence' during global destruction.
DESTROY created new reference to dead object 'Dist::Zilla::MVP::Assembler::Zilla' during global destruction.

Those diagnostics are Perl-compatible when a destructor really revives an object, but the unmodified Dist::Zilla suite does not produce them under standard Perl. Under PerlOnJava they contaminate subprocess output and break command-output assertions.

Oracle and impact

CPAN random run 20260924-115230-59978 tested pure-Perl Dist::Zilla 6.039. Its complete unmodified suite passes with isolated standard Perl 5.42.2: 57 files, 504 tests, Result: PASS.

The PerlOnJava JVM acceptance run fails 38 of 531 subtests across 5 files. In t/commands/listdeps.t, the extra global-destruction diagnostics appear in the captured dependency-list output. A focused interpreter run emits the same diagnostics while executing the first listdeps subtest; the test is bounded but slow under the interpreter.

Focused reproducer

With Dist::Zilla's ordinary test prerequisites:

prove -v t/commands/listdeps.t

Expected on standard Perl: dependency-list output only. Actual on PerlOnJava: the output additionally contains the Config::MVP::Sequence and Dist::Zilla::MVP::Assembler::Zilla global-destruction resurrection diagnostics.

This is intentionally distinct from issue #1473: that issue covers false CORE::try / CORE::catch ambiguity warnings. This issue covers the runtime reaching an unexpected resurrection state for the Dist::Zilla object graph.

Expected behavior

PerlOnJava must preserve the relevant ownership and destruction ordering so these objects do not reach a resurrection warning during the normal Dist::Zilla command lifecycle. The diagnostics must not be injected into command output when standard Perl produces none.

Duplicate search

No existing issue matched Config::MVP::Sequence or Dist::Zilla::MVP::Assembler::Zilla. The only broad global-destruction search result, issue #1144, concerns pseudofork runtime cloning rather than object-lifecycle resurrection.

主要语言
Perl
星标
64
派生
6
平均合并
4 小时 42 分钟
30 天内合并 PR
170

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

fglock/PerlOnJava 的其他 Issue

查看 fglock/PerlOnJava 的全部 Issue

相似的 Issue

更多 Perl Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。