Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

DateTime::subtract fails when nanosecond result crosses midnight

Fermée
#1,720 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Une pull request liée a déjà été fusionnée.

  • #1724 par @fglock — fusionnée

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
java
Domaine
backend

Piste de recherche

The failure is in DateTime 1.67's t/10subtract.t at line 156, where subtracting one nanosecond from midnight passes nanosecond => -1 into DateTime validation. Start by running that focused test on the PerlOnJava JVM and interpreter backends and compare with system Perl. Done means the test passes on both backends. Linked PR #1724 is already open against this issue, so check it before starting.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

area:runtime bug high-impact

Summary

DateTime::subtract fails when a subtraction crosses midnight by one nanosecond. It passes nanosecond => -1 into DateTime's validation instead of normalizing the result to the previous second/day.

Reproduction

DateTime 1.67's t/10subtract.t reaches the failing case at line 156, subtracting one nanosecond from midnight. PerlOnJava aborts after the preceding 37 assertions with an invalid nanosecond error.

The focused test passes with system Perl 5.45.4 (perl5/perl) and DateTime's full 1.67 suite passes on that oracle. The focused test fails on both PerlOnJava execution backends: JVM and interpreter.

This was observed during CPAN release acceptance run 20261009-194921-60036.

Impact

The failure is in DateTime's pure-Perl subtraction path. DateTime currently has about 950 unique runtime reverse dependants (558 with recent CPAN releases), including Monitoring-Sneck, Travel-Status-MOTIS, BarefootJS, App-ElasticSearch-Utilities, Test2-Harness-UI, and Dist-Zilla.

Other DateTime failures in this acceptance run involve goto from a sort comparator and are tracked separately in #1634; this issue is only for nanosecond normalization.

Langage dominant
Perl
Étoiles
64
Forks
8
Merge moyen
5 h 39 min
PR mergées (30 j)
213

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de fglock/PerlOnJava

Toutes les issues de fglock/PerlOnJava

Issues similaires

Plus d'issues Perl

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.