Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Fix UTF-8 seek/tell positioning during binary file lookup

Đang mở
#1,520 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java, perl
Lĩnh vực
backend, testing

Hướng nghiên cứu

Start with the existing UTF-8 seek audit and reproduce the failures in t/lookup.t and t/personalized.t. Trace the seek/tell and readline interaction used by Search::Dict::look on a larger UTF-8 file with a multibyte character before the lookup. Done means the regression passes on both JVM and interpreter backends and the affected upstream tests report all 9 tests passing.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area:backend area:io area:unicode bug

Summary

Data::Password::Common 0.004 fails its upstream test suite on PerlOnJava, while the same suite passes completely under system Perl.

Reproduction

CPAN compatibility run: 20260924-085657-82687

Distribution: Data-Password-Common-0.004

Observed result:

Files=3, Tests=9, 11 wallclock secs
Result: FAIL
Failed 2/3 test programs. 5/9 subtests failed.

The failures are:

  • t/lookup.t: password and !"£$%^ are incorrectly reported as absent.
  • t/personalized.t: password is incorrectly absent from both the built-in and custom lists, and stupid1 is incorrectly absent from the built-in list.

The ordinary system-Perl oracle passes all 9 tests. The failure reproduces on both the JVM and interpreter backends.

Root cause evidence

Data::Password::Common opens its password list with the :utf8 layer and calls Search::Dict::look, which performs byte-offset binary searches using seek and then reads a line.

With the custom ASCII-list test:

  • system Perl positions at byte offset 2369 and reads password;
  • PerlOnJava positions at byte offset 2372 and reads sword.

The input file contains multibyte UTF-8 characters before the searched entry. This indicates an encoded-file buffering/positioning parity bug in the interaction between seek/tell and subsequent readline/binary-search operations. It is not a missing dependency, timeout, native-module, or upstream test issue.

The basic UTF-8 seek audit currently passes, so a regression test should cover a larger UTF-8 file with a multibyte character before a Search::Dict-style binary lookup.

Scope

Both execution backends are affected. Existing labels bug, area:io, area:unicode, and area:backend are applicable.

Ngôn ngữ chính
Perl
Star
64
Fork
6
Merge trung bình
4 giờ 45 phút
Pull request đã merge (30 ngày)
180

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của fglock/PerlOnJava

Tất cả issue của fglock/PerlOnJava

Issue tương tự

Thêm issue về Perl

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.