There are currently quite a few reports about DBD::CSV not able to
install, as 50_chopblanks is failing
I finally found a combination in which I can reproduce the failure, but
it seems brittle and unstable. We needz help :)
How does it look:
FAIL:
DBD-CSV-0.36 630 > make test
Skip blib/lib/Bundle/DBD/CSV.pm (unchanged)
Skip blib/lib/DBD/CSV.pm (unchanged)
PERL_DL_NONLAZY=1 /pro/bin/perl5.14.1 "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00_meta.t .........
skipped: Author tests not required for installation
t/00_pod.t .......... ok t/00_pod_cov.t ...... ok
t/10_base.t ......... 2/? # Showing relevant versions
# Using DBI version 1.622
# Using DBD::File version 0.40
# Using SQL::Statement version 1.401
# Using Text::CSV_XS version 0.94
# DBD::CSV 0.36 using Text::CSV_XS (0.94)
# DBD::File 0.40 using IO::File (1.15)
# DBI::DBD::SqlEngine 0.03 using SQL::Statement 1.401
# DBI 1.622
# OS linux (2.6.37.6-0.5-desktop)
# Perl 5.014001 (x86_64-linux-ld)
t/10_base.t ......... ok
t/11_dsnlist.t ...... ok
t/20_createdrop.t ... ok
t/30_insertfetch.t .. ok
t/31_delete.t ....... ok
t/32_update.t ....... ok
t/40_numrows.t ...... ok
t/41_nulls.t ........ ok
t/42_bindparam.t .... ok
t/43_blobs.t ........ ok
t/44_listfields.t ... ok
t/48_utf8.t ......... ok
t/50_chopblanks.t ... 1/?
# Failed test 'fetch'
# at t/50_chopblanks.t line 41.
# Failed test 'content'
# at t/50_chopblanks.t line 42.
# Structures begin differing at:
# $got = undef
# $expected = ARRAY(0x162ff08)
# Failed test 'fetch'
# at t/50_chopblanks.t line 41.
# Failed test 'content'
# at t/50_chopblanks.t line 42.
# Structures begin differing at:
# $got = undef
# $expected = ARRAY(0x1628560)
# Looks like you failed 4 tests of 65.
t/50_chopblanks.t ... Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/65 subtests
t/51_commit.t ....... ok
t/60_misc.t ......... ok
t/70_csv.t .......... ok
t/71_csv-ext.t ...... ok
t/72_csv-schema.t ... ok
t/73_csv-case.t ..... ok
t/80_rt.t ........... ok
t/85_error.t ........ ok
Test Summary Report
-------------------
t/50_chopblanks.t (Wstat: 1024 Tests: 65 Failed: 4)
Failed tests: 29-30, 47-48
Non-zero exit status: 4
t/73_csv-case.t (Wstat: 0 Tests: 44 Failed: 0)
TODO passed: 30, 32, 34, 36, 38, 40, 42
Files=24, Tests=723, 4 wallclock secs ( 0.12 usr 0.04 sys + 3.57
cusr 0.41 csys = 4.14 CPU) Result: FAIL
Failed 1/24 test programs. 4/723 subtests failed.
Then change like below and behold:
PASS:
DBD-CSV-0.36 633 > make test
PERL_DL_NONLAZY=1 /pro/bin/perl5.14.1 "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00_meta.t .........
skipped: Author tests not required for installation
t/00_pod.t .......... ok t/00_pod_cov.t ...... ok
t/10_base.t ......... 1/? # Showing relevant versions
# Using DBI version 1.622
# Using DBD::File version 0.40
# Using SQL::Statement version 1.401
# Using Text::CSV_XS version 0.94
# DBD::CSV 0.36 using Text::CSV_XS (0.94)
# DBD::File 0.40 using IO::File (1.15)
# DBI::DBD::SqlEngine 0.03 using SQL::Statement 1.401
# DBI 1.622
# OS linux (2.6.37.6-0.5-desktop)
# Perl 5.014001 (x86_64-linux-ld)
t/10_base.t ......... ok
t/11_dsnlist.t ...... ok
t/20_createdrop.t ... ok
t/30_insertfetch.t .. ok
t/31_delete.t ....... ok
t/32_update.t ....... ok
t/40_numrows.t ...... ok
t/41_nulls.t ........ ok
t/42_bindparam.t .... ok
t/43_blobs.t ........ ok
t/44_listfields.t ... ok
t/48_utf8.t ......... ok
t/50_chopblanks.t ... ok
t/51_commit.t ....... ok
t/60_misc.t ......... ok
t/70_csv.t .......... ok
t/71_csv-ext.t ...... ok
t/72_csv-schema.t ... ok
t/73_csv-case.t ..... ok
t/80_rt.t ........... ok
t/85_error.t ........ ok
All tests successful.
Test Summary Report
-------------------
t/73_csv-case.t (Wstat: 0 Tests: 44 Failed: 0)
TODO passed: 30, 32, 34, 36, 38, 40, 42
Files=24, Tests=723, 4 wallclock secs ( 0.13 usr 0.04 sys + 3.57
cusr 0.40 csys = 4.14 CPU) Result: PASS
--8<--- SqlEngine.pm.diff
---
lib/perl5/site_perl/5.14.1/x86_64-linux-ld/DBI/DBD/SqlEngine.pm.org
2012-12-05 15:53:34.000000000 +0100 +++
lib/perl5/site_perl/5.14.1/x86_64-linux-ld/DBI/DBD/SqlEngine.pm
2012-12-05 15:53:40.000000000 +0100 @@ -795,6 +795,7 @@ sub execute
local $SIG{__WARN__} = sub { push @err, @_ }; $result =
$stmt->execute( $sth, $params ); };
+ my $dummy = \[];
unless ( defined $result )
{
$sth->set_err( $DBI::stderr, $@ || $stmt->{errstr} || $err[0]
); -->8---
These cause FAIL (as in it still FAILS, so no change):
my $dummy = $result;
my $dummy = 1;
my $dummy = [];
my $dummy = {};
These cause PASS:
my $dummy = { bonkers => 1 };
my $dummy = [ 1, 2 ];
my $dummy = \[];
my $dummy = \{};
As Tim nicely put it: this smells like the canary in the coalmines
I am currently trying to get all the prereqs installed on perl-5.17.6
compiled with clang -fsanitize=address, but I cannot install a lot of
the prereq's including DBI. I will post a separate message about that
--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using perl5.00307 .. 5.17 porting perl5 on HP-UX, AIX, and openSUSE
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/