Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

IPC::Concurrency::DBI fails because successful DBI operations leave errstr defined

Closed
#1,552 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
55/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
perl, sqlite
Domain
databases

Research direction

Start by reproducing the minimal SQLite INSERT and inspect the bundled DBI compatibility layer that updates errstr after successful operations. Then run t/20-register_application.t, the t/30-Application tests, and t/35-get_application.t; done means successful operations leave errstr undefined and these failures pass under both backends.

Written by the indexing model from the issue text.

Description

area:cpan-port area:database area:runtime bug

Summary

IPC::Concurrency::DBI v1.2.0 fails under PerlOnJava even though its upstream suite passes under system Perl.

Evidence

  • CPAN run: 20260928-091741-26386
  • Distribution: IPC-Concurrency-DBI v1.2.0
  • System Perl: 22 test files, 103/103 tests passed.
  • PerlOnJava: 12/22 test programs failed and 13/78 subtests failed.
  • The failures occur in t/20-register_application.t, the t/30-Application/... tests, and t/35-get_application.t.
  • Both JVM and interpreter backends reproduce the issue.

The first successful SQLite INSERT returns one affected row, but PerlOnJava reports defined($dbh->errstr) == 1 with an empty string. System Perl reports defined($dbh->errstr) == 0 after the same successful operation. IPC::Concurrency::DBI checks whether errstr is defined and therefore turns successful SQL operations into Cannot execute SQL: failures.

Minimal behavior:

my $rows = $dbh->do(
  'INSERT INTO t(name,n) VALUES (?,0)', {}, 'x'
);
# PerlOnJava: rows=1, errstr defined, errstr=""
# System Perl: rows=1, errstr undef

This points to the bundled DBI compatibility layer clearing errstr to an empty defined scalar instead of undef after success.

Related issues

Dependency note

PerlOnJava uses its bundled Perl/JDBC DBI + SQLite implementation, so this is an internal DBI compatibility issue rather than an unsupported native prerequisite. A targeted DBD::SQLite reverse-dependency lookup was attempted for classification but MetaCPAN was unavailable; no dependency count is inferred.

Dominant language
Perl
Stars
64
Forks
6
Avg merge
4h 29m
Merged PRs (30d)
185

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fglock/PerlOnJava

All issues in fglock/PerlOnJava

Similar issues

More Perl issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.