Summary
CGI::Simple 1.282 passes its complete upstream test suite under system Perl but fails multipart form parsing under both PerlOnJava execution backends.
The failure was recorded in CPAN random tester run 20260910-101908-8428. The reported target was CGI::Simple::Util, but the failing test block belongs to the CGI::Simple distribution itself.
Upstream baseline
System Perl 5.42.2 passes the complete upstream suite:
Files=16, Tests=892
Result: PASS
The only skipped test is the optional version check because Test::Version is unavailable. The fork-dependent tests run successfully under system Perl.
PerlOnJava result
PerlOnJava fails 7 of 890 executed assertions in 2 of 16 test programs:
t/041.multipart.t: 4 failures
t/upload_info.t: 3 failures
The failures are reproducible on both the JVM backend and the interpreter backend.
Observed failures include:
list of params: expected action, body, send_action but got no parameters
reply param: got undef, expected reply
body param: got undef, expected asdfasdf
send_action param: got undef, expected Reply
Guess mime for image/png: failed
Guess mime for image/svg+xml: failed
Guess mime for application/vnd.ms-excel: failed
The test inputs use an in-memory scalar-backed filehandle opened with open $h, <, \\$body, together with a valid multipart/form-data boundary and CONTENT_LENGTH. The same inputs pass under system Perl.
Suspected cause
The primary defect appears to be shared filehandle or scalar-backed input handling in PerlOnJava. Multipart parsing does not read or populate the three form fields, and the MIME assertions then fail because upload metadata was not created. Since both backends fail identically and the distribution is pure Perl, this is likely a shared runtime I/O compatibility issue rather than a JVM-only compiler problem or an XS/native dependency issue.
A focused project-owned regression test should cover reading an in-memory scalar-backed handle through the multipart parser and preserving the uploaded MIME types.
Related issue
Issue #1216 tracks a related scalar/filehandle I/O failure in Template::Like, where filehandle input combined with scalar-reference output fails on both backends. The CGI::Simple failure is not a duplicate: it concerns scalar-backed filehandle input and multipart parsing, but may share the same underlying I/O implementation gap.
Issue #1338 concerns CGI::Cache tied filehandle output dispatch and is separate from this failure.
Acceptance criteria
- Add a standard-Perl-validated project regression test for multipart parsing from a scalar-backed filehandle.
- Make
CGI::Simple 1.282 pass all 16 test programs and 892 tests on the JVM backend.
- Make the same suite pass on the interpreter backend.
- Preserve multipart parameters and upload MIME metadata, including
image/png, image/svg+xml, and application/vnd.ms-excel.
- Re-run the CPAN compatibility test for run
20260910-101908-8428 after the fix.
Summary
CGI::Simple1.282 passes its complete upstream test suite under system Perl but fails multipart form parsing under both PerlOnJava execution backends.The failure was recorded in CPAN random tester run
20260910-101908-8428. The reported target wasCGI::Simple::Util, but the failing test block belongs to theCGI::Simpledistribution itself.Upstream baseline
System Perl 5.42.2 passes the complete upstream suite:
The only skipped test is the optional version check because
Test::Versionis unavailable. The fork-dependent tests run successfully under system Perl.PerlOnJava result
PerlOnJava fails 7 of 890 executed assertions in 2 of 16 test programs:
t/041.multipart.t: 4 failurest/upload_info.t: 3 failuresThe failures are reproducible on both the JVM backend and the interpreter backend.
Observed failures include:
The test inputs use an in-memory scalar-backed filehandle opened with
open $h, <, \\$body, together with a validmultipart/form-databoundary andCONTENT_LENGTH. The same inputs pass under system Perl.Suspected cause
The primary defect appears to be shared filehandle or scalar-backed input handling in PerlOnJava. Multipart parsing does not read or populate the three form fields, and the MIME assertions then fail because upload metadata was not created. Since both backends fail identically and the distribution is pure Perl, this is likely a shared runtime I/O compatibility issue rather than a JVM-only compiler problem or an XS/native dependency issue.
A focused project-owned regression test should cover reading an in-memory scalar-backed handle through the multipart parser and preserving the uploaded MIME types.
Related issue
Issue #1216 tracks a related scalar/filehandle I/O failure in
Template::Like, where filehandle input combined with scalar-reference output fails on both backends. The CGI::Simple failure is not a duplicate: it concerns scalar-backed filehandle input and multipart parsing, but may share the same underlying I/O implementation gap.Issue #1338 concerns
CGI::Cachetied filehandle output dispatch and is separate from this failure.Acceptance criteria
CGI::Simple1.282 pass all 16 test programs and 892 tests on the JVM backend.image/png,image/svg+xml, andapplication/vnd.ms-excel.20260910-101908-8428after the fix.