Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Track DBIx::Class acceptance for reachability PR #1647

Geschlossen
#1,696 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
12/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
java, perl, sqlite
Bereich
compilers, databases

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.
Vorherrschende Sprache
Perl
Sterne
64
Forks
8
Ø Merge
5 Std. 43 Min.
Gemergte PRs (30 T.)
204

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus fglock/PerlOnJava

Alle Issues in fglock/PerlOnJava

Ähnliche Issues

Weitere Issues zu Perl

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.