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

Track DBIx::Class acceptance for reachability PR #1647

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

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
12/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
java, perl, sqlite

调研方向

This is an umbrella tracker, not a single change. Start by reproducing the Storage object-collection failure in t/100extra_source.t from the DBIx::Class test suite, comparing system Perl with PerlOnJava. Trace which runtime-held references keep the blessed Storage object alive (refcount 131). Done means that test's two assertions pass and the fix has its own project regression test. Link the work to #1649.

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

描述

Purpose

Track DBIx::Class CPAN acceptance for the lifecycle work around PR #1647 and ownership semantics in #1649. Run DBIx::Class unchanged so failures expose PerlOnJava behavior directly.

Relationship to #1649 and PR #1647

The initial failures included premature cleanup of returned DBIx::Class references, which is part of the ownership and lifetime behavior described by #1649. The nested-query bind failure also exposed stale $#array proxies after a packed query passed through returned references. The runtime fix is in PerlOnJava; DBIx::Class does not need a compatibility patch.

PR #1647 remains the current independent reachability/lifecycle PR. Use the DBIx::Class acceptance results to identify remaining lifecycle regressions and link focused core fixes to #1649.

Plan

  1. Fix PerlOnJava ownership and array-size proxy behavior
    • Preserve arrays strongly referenced by a subroutine return until the caller receives that value.
    • Keep a fresh $#array access valid when the array is reached through a live Perl reference, even if earlier scope cleanup orphaned old size proxies.
  2. Keep permanent regression coverage
    • Validate the core returned-query range behavior with the unit suite and both backends.
    • Validate grouped counts and nested FROM bind values with upstream DBIx::Class, unchanged.
  3. Fix the remaining object-lifecycle regressions
    • Reproduce the Storage object retention from t/100extra_source.t; system Perl passes while PerlOnJava fails both object-collection assertions.
    • Trace which PerlOnJava-owned references keep that blessed Storage object reachable and correct their release/weak-reference handling in the runtime.
    • Add focused project-owned coverage for the reproduced ownership defect.
  4. Complete DBIx::Class acceptance
    • Re-run the full nice -n 19 ./jcpan --jobs 5 -t DBIx::Class suite with a timeout and captured output after the runtime fix.
    • Triage every remaining failing test program against system Perl; separately diagnose the late SQLite test-lock collision seen in the parallel run.
  5. Update the handoff
    • Report DBIx lifecycle acceptance separately from unrelated failures in PR #1647.
    • Keep #1649 open until its broader ownership criteria are met.

Current evidence

  • The focused grouped-count regression passes all eight assertions on system Perl, JVM, and interpreter with upstream DBIx::Class 0.082844 and no DBIx patch.
  • The core returned-query range regression passes on system Perl, JVM, and interpreter.
  • nice -n 19 make and make check-links pass with the current core changes.
  • The latest full run completed 325 test files / 43,363 tests: 183 test programs and 362 subtests failed. The earlier run had 184 failing programs / 447 failing subtests. These are PerlOnJava defects to fix, not acceptable compatibility failures.
  • In a focused comparison, system Perl passes t/100extra_source.t (11 assertions); PerlOnJava fails its two DBIx::Class Storage object-collection assertions. The object remains reported at refcount 131.
  • The parallel full run also ended with a SQLite test-lock collision in xt/whitespace.t; establish whether that is runner coordination or an interpreter lock bug.

Completion criteria

  • The focused regressions pass on system Perl, JVM, and interpreter.
  • The Storage ownership defect is fixed in PerlOnJava with permanent regression coverage.
  • The full DBIx::Class run completes and every remaining failure is categorized and addressed; lifecycle fixes are linked to #1649.
  • PR #1647's DBIx lifecycle acceptance is recorded without treating any PerlOnJava defect as expected.
主要语言
Perl
星标
64
派生
7
平均合并
5 小时 39 分钟
30 天内合并 PR
213

环境准备

  • 提供 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 摘要。