Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.9k stars 538 forks source link

GDBM_File tests fail with gdbm 1.15 #16594

Closed p5pRT closed 5 years ago

p5pRT commented 6 years ago

Migrated from rt.perl.org#133295 (status was 'resolved')

Searchable as RT133295$

p5pRT commented 6 years ago

From bluewind@xinu.at

Created by bluewind@xinu.at

This is a bug report for perl from bluewind@​xinu.at\, generated with the help of perlbug 1.40 running under perl 5.26.2.

----------------------------------------------------------------- When trying to build perl with gdbm 1.15 I get the following output during make test_harness​:

  # Failed test 'Trapped error when attempting to write to knobbled GDBM_File'   # at t/fatal.t line 37.   # got​: '1'   # expected​: undef

  # Failed test 'expected error message from GDBM_File'   # at t/fatal.t line 46.   # ''   # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)'   # Looks like you failed 2 tests of 8.   ../ext/GDBM_File/t/fatal.t .........................................   Dubious\, test returned 2 (wstat 512\, 0x200)   Failed 2/8 subtests

The test passed just fine with gdbm 1.14.1. It appears that 1.15 now properly handles incorrect/corrupted files and no longer crashes according to the release mail. For details see here​: https://lists.gnu.org/archive/html/info-gnu/2018-06/msg00008.html

If you need more information\, feel free to contact me.

Florian

Perl Info ``` Flags: category=library severity=medium module=GDBM_File Site configuration information for perl 5.26.2: Configured by builduser at Wed Apr 18 22:20:25 CEST 2018. Summary of my perl5 (revision 5 version 26 subversion 2) configuration: Platform: osname=linux osvers=4.15.15-1-arch archname=x86_64-linux-thread-multi uname='linux flo-64 4.15.15-1-arch #1 smp preempt sat mar 31 23:59:25 utc 2018 x86_64 gnulinux ' config_args='-des -Dusethreads -Duseshrplib -Doptimize=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Dprefix=/usr -Dvendorprefix=/usr -Dprivlib=/usr/share/perl5/core_perl -Darchlib=/usr/lib/perl5/5.26/core_perl -Dsitelib=/usr/share/perl5/site_perl -Dsitearch=/usr/lib/perl5/5.26/site_perl -Dvendorlib=/usr/share/perl5/vendor_perl -Dvendorarch=/usr/lib/perl5/5.26/vendor_perl -Dscriptdir=/usr/bin/core_perl -Dsitescript=/usr/bin/site_perl -Dvendorscript=/usr/bin/vendor_perl -Dinc_version_list=none -Dman1ext=1perl -Dman3ext=3perl -Dcccdlflags='-fPIC' -Dlddlflags=-shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Dldflags=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now' hint=recommended useposix=true d_sigaction=define useithreads=define usemultiplicity=define use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='cc' ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2' optimize='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt' cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include' ccversion='' gccversion='7.3.1 20180312' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='cc' ldflags ='-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -L/usr/local/lib' libpth=/usr/local/lib /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.1/include-fixed /usr/lib /lib/../lib /usr/lib/../lib /lib /lib64 /usr/lib64 libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc libc=libc-2.26.so so=so useshrplib=true libperl=libperl.so gnulibc_version='2.26' Dynamic Linking: dlsrc=dl_dlopen.xs dlext=so d_dlsymun=undef ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.26/core_perl/CORE' cccdlflags='-fPIC' lddlflags='-shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -L/usr/local/lib -fstack-protector-strong' @INC for perl 5.26.2: /home/flo/perl5/lib/perl5/5.26.2/x86_64-linux-thread-multi /home/flo/perl5/lib/perl5/5.26.2 /home/flo/perl5/lib/perl5/x86_64-linux-thread-multi /home/flo/perl5/lib/perl5 /usr/lib/perl5/5.26/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/5.26/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/5.26/core_perl /usr/share/perl5/core_perl Environment for perl 5.26.2: HOME=/home/flo LANG=en_US.UTF-8 LANGUAGE (unset) LD_LIBRARY_PATH=/opt/opencascade/lib:/opt/opencascade/lib LOGDIR (unset) PATH=/home/flo/perl5/bin:/home/flo/.composer/vendor/bin:/home/flo/bin:/home/flo/bin/extra/vim-bin:/home/flo/bin/extra/genpkg:/home/flo/bin/extra/arch-mirror-tools:/home/flo/bin:/home/flo/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/opencascade/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/opencascade/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/flo/.local/bin PERL5LIB=/home/flo/perl5/lib/perl5 PERLDOC=-MPod::Text::Color::Delight PERLDOC_PAGER=less PERL_BADLANG (unset) PERL_LOCAL_LIB_ROOT=/home/flo/perl5 PERL_MB_OPT=--install_base "/home/flo/perl5" PERL_MM_OPT=INSTALL_BASE=/home/flo/perl5 SHELL=/bin/zsh ```
p5pRT commented 6 years ago

From @shlomif

Hi all!

The gdbm tests fail in both perl-5.26.2 and 5.28.0-RC4 on Mageia 7 x86-64 with gdbm 1.15. Here is an excerpt from the log​:

# Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t ......................................... Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests ../ext/GDBM_File/t/gdbm.t .......................................... ok . . . ../ext/XS-APItest/t/whichsig.t ..................................... ok ../ext/XS-APItest/t/win32.t ........................................ skipped​: Tests only apply on MSWin32 ../ext/XS-APItest/t/xs_special_subs.t .............................. ok ../ext/XS-APItest/t/xs_special_subs_require.t ...................... ok ../ext/XS-APItest/t/xsub_h.t ....................................... ok

Test Summary Report


../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2) Failed tests​: 7-8   Non-zero exit status​: 2 Files=2564\, Tests=1231720\, 264 wallclock secs (109.77 usr 10.22 sys + 547.16 cusr 41.82 csys = 708.97 CPU) Result​: FAIL make​: *** [makefile​:832​: test_harness] Error 2 ##### Brew Failed #####

I am building perl using perlbrew. All other tests succeed.

Thanks to Jim Keenan. --


Shlomi Fish http​://www.shlomifish.org/ http​://www.shlomifish.org/open-source/resources/tech-tips/

There are at least 137 Larry Walls in the U.S.\, but only one that matters.   — http​://www.shlomifish.org/humour/bits/facts/Larry-Wall/

p5pRT commented 6 years ago

From @jkeenan

On Sat\, 23 Jun 2018 08​:05​:44 GMT\, shlomif@​shlomifish.org wrote​:

Hi all!

The gdbm tests fail in both perl-5.26.2 and 5.28.0-RC4 on Mageia 7 x86-64 with gdbm 1.15. Here is an excerpt from the log​:

# Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t ......................................... Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests ../ext/GDBM_File/t/gdbm.t .......................................... ok . . . ../ext/XS-APItest/t/whichsig.t ..................................... ok ../ext/XS-APItest/t/win32.t ........................................ skipped​: Tests only apply on MSWin32 ../ext/XS-APItest/t/xs_special_subs.t .............................. ok ../ext/XS-APItest/t/xs_special_subs_require.t ...................... ok ../ext/XS-APItest/t/xsub_h.t ....................................... ok

Test Summary Report ------------------- ../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2) Failed tests​: 7-8 Non-zero exit status​: 2 Files=2564\, Tests=1231720\, 264 wallclock secs (109.77 usr 10.22 sys + 547.16 cusr 41.82 csys = 708.97 CPU) Result​: FAIL make​: *** [makefile​:832​: test_harness] Error 2 ##### Brew Failed #####

I am building perl using perlbrew. All other tests succeed.

Thanks to Jim Keenan.

See https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295.  Are you able to identify the version of GDBM which you have installed?

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 6 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 6 years ago

From @shlomif

On Sat\, 23 Jun 2018 10​:24​:15 -0700 "James E Keenan via RT" \perlbug\-followup@​perl\.org wrote​:

On Sat\, 23 Jun 2018 08​:05​:44 GMT\, shlomif@​shlomifish.org wrote​:

Hi all!

The gdbm tests fail in both perl-5.26.2 and 5.28.0-RC4 on Mageia 7 x86-64 with gdbm 1.15. Here is an excerpt from the log​:

# Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t ......................................... Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests ../ext/GDBM_File/t/gdbm.t .......................................... ok . . . ../ext/XS-APItest/t/whichsig.t ..................................... ok ../ext/XS-APItest/t/win32.t ........................................ skipped​: Tests only apply on MSWin32 ../ext/XS-APItest/t/xs_special_subs.t .............................. ok ../ext/XS-APItest/t/xs_special_subs_require.t ...................... ok ../ext/XS-APItest/t/xsub_h.t ....................................... ok

Test Summary Report ------------------- ../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2) Failed tests​: 7-8 Non-zero exit status​: 2 Files=2564\, Tests=1231720\, 264 wallclock secs (109.77 usr 10.22 sys + 547.16 cusr 41.82 csys = 708.97 CPU) Result​: FAIL make​: *** [makefile​:832​: test_harness] Error 2 ##### Brew Failed #####

I am building perl using perlbrew. All other tests succeed.

Thanks to Jim Keenan.

See https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295.  Are you able to identify the version of GDBM which you have installed?

Yes\, version 1.15​:

shlomif@​telaviv1​:\~$ rpm -qa | grep -i gdbm lib64gdbm6-1.15-1.mga7 lib64gdbm-devel-1.15-1.mga7 lib64gdbm4-1.14-1.mga7 shlomif@​telaviv1​:\~$

I mentioned that.

--


Shlomi Fish http​://www.shlomifish.org/ http​://www.shlomifish.org/humour/ways_to_do_it.html

But if you’re writing [open source software] for the world\, you have to listen to your customers — this doesn’t change just because they’re not paying you in money.   — Eric S. Raymond in The Cathedral and the Bazaar

Please reply to list if it's a mailing list post - http​://shlom.in/reply .

p5pRT commented 6 years ago

From @shlomif

On Sat\, 23 Jun 2018 10​:24​:15 -0700 "James E Keenan via RT" \perlbug\-followup@​perl\.org wrote​:

On Sat\, 23 Jun 2018 08​:05​:44 GMT\, shlomif@​shlomifish.org wrote​:

Hi all!

The gdbm tests fail in both perl-5.26.2 and 5.28.0-RC4 on Mageia 7 x86-64 with gdbm 1.15. Here is an excerpt from the log​:

# Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t ......................................... Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests ../ext/GDBM_File/t/gdbm.t .......................................... ok . . . ../ext/XS-APItest/t/whichsig.t ..................................... ok ../ext/XS-APItest/t/win32.t ........................................ skipped​: Tests only apply on MSWin32 ../ext/XS-APItest/t/xs_special_subs.t .............................. ok ../ext/XS-APItest/t/xs_special_subs_require.t ...................... ok ../ext/XS-APItest/t/xsub_h.t ....................................... ok

Test Summary Report ------------------- ../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2) Failed tests​: 7-8 Non-zero exit status​: 2 Files=2564\, Tests=1231720\, 264 wallclock secs (109.77 usr 10.22 sys + 547.16 cusr 41.82 csys = 708.97 CPU) Result​: FAIL make​: *** [makefile​:832​: test_harness] Error 2 ##### Brew Failed #####

I am building perl using perlbrew. All other tests succeed.

Thanks to Jim Keenan.

See https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295.  Are you able to identify the version of GDBM which you have installed?

Yes\, version 1.15​:

shlomif@​telaviv1​:\~$ rpm -qa | grep -i gdbm lib64gdbm6-1.15-1.mga7 lib64gdbm-devel-1.15-1.mga7 lib64gdbm4-1.14-1.mga7 shlomif@​telaviv1​:\~$

I mentioned that.

--


Shlomi Fish http​://www.shlomifish.org/ http​://www.shlomifish.org/humour/ways_to_do_it.html

But if you’re writing [open source software] for the world\, you have to listen to your customers — this doesn’t change just because they’re not paying you in money.   — Eric S. Raymond in The Cathedral and the Bazaar

Please reply to list if it's a mailing list post - http​://shlom.in/reply .

p5pRT commented 6 years ago

From @jkeenan

I'm merging this ticket into https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295, as I have confirmed the error and 133295 was the first to be filed.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 6 years ago

From @jkeenan

On Sat\, 23 Jun 2018 18​:12​:33 GMT\, jkeenan wrote​:

I'm merging this ticket into https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295, as I have confirmed the error and 133295 was the first to be filed.

I was able to confirm this bug on a Linux machine where\, it appears\, I did not previously have GDBM installed.

I first installed libgdbm3 as follows​:

##### $> sudo apt-get install libgdbm3 libgdbm-dev #####

That appears to have installed only a rather old version of the library​:

##### $> man gdbm NAME   GDBM - The GNU database manager. Includes dbm and ndbm compatability. (Version 1.8.3.) #####

I then downloaded version 1.15.0 of gdbm from https://ftpmirror.gnu.org/gdbm/gdbm-1.15.tar.gz.  I configured it to install in a non-standard location and did so.

##### $> ./configure --prefix=/home/jkeenan/learn/perl/p5p/gdbm-1.15 && make && make install $> ack VERSION include/gdbm.h # define GDBM_VERSION_MAJOR 1 # define GDBM_VERSION_MINOR 15 # define GDBM_VERSION_PATCH 0 #####

I then configured and built blead (commit 1efe078f0a293b2ce3eb5c2758bb1c93240a0822) as follows​:

##### $> sh ./Configure -des -Dusedevel \   -Dlocincpth='/home/jkeenan/learn/perl/p5p/gdbm-1.15/include /usr/local/include' \   -Dloclibpth='/home/jkeenan/learn/perl/p5p/gdbm-1.15/lib /usr/local/lib' $> make test_prep #####

I then ran the test file in question.

##### cd t;./perl harness -v ../ext/GDBM_File/t/fatal.t;cd -

ok 1 - use GDBM_File; ok 2 - Can find next available file descriptor ok 3 - Check that we cannot open fileno 3. $! is Bad file descriptor ok 4 - An object of class 'GDBM_File' isa 'GDBM_File' ok 5 - dup fileno 3 ok 6 - close fileno 3\, out from underneath the GDBM_File not ok 7 - Trapped error when attempting to write to knobbled GDBM_File # Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef not ok 8 - expected error message from GDBM_File # Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests

Test Summary Report


../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2)   Failed tests​: 7-8   Non-zero exit status​: 2 Files=1\, Tests=8\, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.04 cusr 0.00 csys = 0.06 CPU) Result​: FAIL #####

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 6 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 6 years ago

From @jkeenan

On Sat\, 23 Jun 2018 18​:24​:13 GMT\, jkeenan wrote​:

On Sat\, 23 Jun 2018 18​:12​:33 GMT\, jkeenan wrote​:

I'm merging this ticket into https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295, as I have confirmed the error and 133295 was the first to be filed.

I was able to confirm this bug on a Linux machine where\, it appears\, I did not previously have GDBM installed.

I first installed libgdbm3 as follows​:

##### $> sudo apt-get install libgdbm3 libgdbm-dev #####

That appears to have installed only a rather old version of the library​:

##### $> man gdbm NAME GDBM - The GNU database manager. Includes dbm and ndbm compatability. (Version 1.8.3.) #####

I then downloaded version 1.15.0 of gdbm from https://ftpmirror.gnu.org/gdbm/gdbm-1.15.tar.gz.  I configured it to install in a non-standard location and did so.

##### $> ./configure --prefix=/home/jkeenan/learn/perl/p5p/gdbm-1.15 && make && make install $> ack VERSION include/gdbm.h # define GDBM_VERSION_MAJOR 1 # define GDBM_VERSION_MINOR 15 # define GDBM_VERSION_PATCH 0 #####

I then configured and built blead (commit 1efe078f0a293b2ce3eb5c2758bb1c93240a0822) as follows​:

##### $> sh ./Configure -des -Dusedevel \ -Dlocincpth='/home/jkeenan/learn/perl/p5p/gdbm-1.15/include /usr/local/include' \ -Dloclibpth='/home/jkeenan/learn/perl/p5p/gdbm-1.15/lib /usr/local/lib' $> make test_prep #####

I then ran the test file in question.

##### cd t;./perl harness -v ../ext/GDBM_File/t/fatal.t;cd -

ok 1 - use GDBM_File; ok 2 - Can find next available file descriptor ok 3 - Check that we cannot open fileno 3. $! is Bad file descriptor ok 4 - An object of class 'GDBM_File' isa 'GDBM_File' ok 5 - dup fileno 3 ok 6 - close fileno 3\, out from underneath the GDBM_File not ok 7 - Trapped error when attempting to write to knobbled GDBM_File # Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef not ok 8 - expected error message from GDBM_File # Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests

Test Summary Report ------------------- ../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2) Failed tests​: 7-8 Non-zero exit status​: 2 Files=1\, Tests=8\, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.04 cusr 0.00 csys = 0.06 CPU) Result​: FAIL #####

cc-ing the author of the failing tests. Nicholas\, can you have a look?

I suspect that going forward our GDBM module will have to expose the MAJOR/MINOR/PATCH version of the underlying gdbm library.

Thank you very much.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 6 years ago

From @ppisar

On 2018-06-22\, "bluewind@​xinu.at (via RT)" \perlbug\-followup@​perl\.org wrote​:

When trying to build perl with gdbm 1.15 I get the following output during make test_harness​:

\#   Failed test 'Trapped error when attempting to write to knobbled GDBM\_File'
\#   at t/fatal\.t line 37\.
\#       got​: '1'
\#     expected​: undef

\#   Failed test 'expected error message from GDBM\_File'
\#   at t/fatal\.t line 46\.
\#            ''
\#     doesn't match '\(?^​: at \.\*\\bfatal\\\.t line \\d\+\\\.\\n\\z\)'
\# Looks like you failed 2 tests of 8\.
\.\./ext/GDBM\_File/t/fatal\.t \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
Dubious\, test returned 2 \(wstat 512\, 0x200\)
Failed 2/8 subtests

The test passed just fine with gdbm 1.14.1. It appears that 1.15 now properly handles incorrect/corrupted files and no longer crashes according to the release mail. For details see here​: https://lists.gnu.org/archive/html/info-gnu/2018-06/msg00008.html

1.15 no longer crashes but it also seems not reporting errors properly.

The Perl test lets gdbm library to open a database file\, then Perl closes a file descriptor gdbm uses for that database file and then Perl asks gdbm to store a key-value pair into the database.

Old gdbm crashes.

New gdbm returns success\, although strace reveals a write into the file fails with ABADF​:

close(3) = 0 getpid() = 32311 write(6\, "ok 6 - close fileno 3\, out from "...\, 57ok 6 - close fileno 3\, out from underneath the GDBM_File ) = 57 brk(NULL) = 0x5647cb45a000 brk(0x5647cb47b000) = 0x5647cb47b000 brk(NULL) = 0x5647cb47b000 brk(0x5647cb49c000) = 0x5647cb49c000 brk(NULL) = 0x5647cb49c000 brk(0x5647cb4bd000) = 0x5647cb4bd000 msync(0x7f59bbf9e000\, 16384\, MS_SYNC|MS_INVALIDATE) = 0 munmap(0x7f59bbf9e000\, 16384) = 0 flock(3\, LOCK_UN) = -1 EBADF (Bad file descriptor) close(3) = -1 EBADF (Bad file descriptor) brk(NULL) = 0x5647cb4bd000 brk(NULL) = 0x5647cb4bd000 brk(0x5647cb45a000) = 0x5647cb45a000 brk(NULL) = 0x5647cb45a000 getpid() = 32311 write(6\, "not ok 7 - Trapped error when at"...\, 72not ok 7 - Trapped error when attempting to write to knobbled GDBM_File ) = 72

The Perl test does "$h{Perl} = 'Rules'" under eval\, the tied hash store translates it to Perl's gdbm_STORE() that directly calls gdbm's gdbm_store and then Perl croaks only on (RETVAL \< 0 && errno == EPERM) condition.

Debugger shows gdbm_store() returns success (0).

Thus I believe this is a bug in gdbm C library. Although I cannot find where Perl's GDBM_File handles non-zero return value from gdbm_STORE(). This is probably also a place for improvment on Perl side.

-- Petr

p5pRT commented 6 years ago

From @ppisar

On 2018-06-26\, Petr Pisar \ppisar@&#8203;redhat\.com wrote​:

On 2018-06-22\, "bluewind@​xinu.at (via RT)" \perlbug\-followup@&#8203;perl\.org wrote​:

When trying to build perl with gdbm 1.15 I get the following output during make test_harness​:

\#   Failed test 'Trapped error when attempting to write to knobbled GDBM\_File'
\#   at t/fatal\.t line 37\.
\#       got&#8203;: '1'
\#     expected&#8203;: undef

\#   Failed test 'expected error message from GDBM\_File'
\#   at t/fatal\.t line 46\.
\#            ''
\#     doesn't match '\(?^&#8203;: at \.\*\\bfatal\\\.t line \\d\+\\\.\\n\\z\)'
\# Looks like you failed 2 tests of 8\.
\.\./ext/GDBM\_File/t/fatal\.t \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
Dubious\, test returned 2 \(wstat 512\, 0x200\)
Failed 2/8 subtests

The test passed just fine with gdbm 1.14.1. It appears that 1.15 now properly handles incorrect/corrupted files and no longer crashes according to the release mail. For details see here​: https://lists.gnu.org/archive/html/info-gnu/2018-06/msg00008.html

1.15 no longer crashes but it also seems not reporting errors properly.

The Perl test lets gdbm library to open a database file\, then Perl closes a file descriptor gdbm uses for that database file and then Perl asks gdbm to store a key-value pair into the database.

Old gdbm crashes.

New gdbm returns success\, although strace reveals a write into the file fails with ABADF​:

close(3) = 0 getpid() = 32311 write(6\, "ok 6 - close fileno 3\, out from "...\, 57ok 6 - close fileno 3\, out from underneath the GDBM_File ) = 57 brk(NULL) = 0x5647cb45a000 brk(0x5647cb47b000) = 0x5647cb47b000 brk(NULL) = 0x5647cb47b000 brk(0x5647cb49c000) = 0x5647cb49c000 brk(NULL) = 0x5647cb49c000 brk(0x5647cb4bd000) = 0x5647cb4bd000 msync(0x7f59bbf9e000\, 16384\, MS_SYNC|MS_INVALIDATE) = 0 munmap(0x7f59bbf9e000\, 16384) = 0 flock(3\, LOCK_UN) = -1 EBADF (Bad file descriptor) close(3) = -1 EBADF (Bad file descriptor) brk(NULL) = 0x5647cb4bd000 brk(NULL) = 0x5647cb4bd000 brk(0x5647cb45a000) = 0x5647cb45a000 brk(NULL) = 0x5647cb45a000 getpid() = 32311 write(6\, "not ok 7 - Trapped error when at"...\, 72not ok 7 - Trapped error when attempting to write to knobbled GDBM_File ) = 72

The Perl test does "$h{Perl} = 'Rules'" under eval\, the tied hash store translates it to Perl's gdbm_STORE() that directly calls gdbm's gdbm_store and then Perl croaks only on (RETVAL \< 0 && errno == EPERM) condition.

Debugger shows gdbm_store() returns success (0).

Thus I believe this is a bug in gdbm C library.

My 1.15 uses memory mapped I/O. gdbm_store() succeeds because the mapping still exists even after closing the underlying file. So not bug from gdbm C library.

The whole eval-ed code is​:

  $h{Perl} = 'Rules';   untie %h;   1;

Store succeeds. The untie calls gdbm_DESTROY() that calls gdbm_close() gdbm_close() has void return type. This is a deficiency in C gdbm library because gdbm_close() does does the unlock and close() and both fails with EBADF and gdbm does does not check for their failure and does not raise the error because of gdbm_close() prototype.

So at the end it looks like a bug in gdbm interface that it cannot report an error on database close. And then of course Perl cannot report any error.

I'm not sure why msync() did not fail or while the process did not segfaulted. Maybe it worked as designed.

-- Petr

p5pRT commented 6 years ago

From @ppisar

On 2018-06-26\, Petr Pisar \ppisar@&#8203;redhat\.com wrote​:

So at the end it looks like a bug in gdbm interface that it cannot report an error on database close. And then of course Perl cannot report any error.

I searched why the Perl test exist at all. It was added with this commit​:

commit ceab7011c2af9d86bd7743d6c1b7c37540fe14f1 Author​: Nicholas Clark \nick@&#8203;ccl4\.org Date​: Thu Dec 13 16​:38​:17 2012 +0100

  GDBM_File is meant to croak() if the gdbm library has a fatal error.  
  gdbm_open() takes a fifth argument\, for an optional callback function used   to report a fatal error. Since it was added in 5.000\, the tied hash wrapper   implemented in GDBM_File.xs has (intended) to default this to croak().   However\, the callback expects a function taking a single const char *   argument\, whereas croak(const char *pat\, ...) has variable arguments.   The code as-was had two bugs  
  1) The calling ABI on some platforms differs between a (known) variable-   argument function\, and one which takes (known) fixed arguments. As the   call site knows the pointer is to a function with fixed arguments\, the   calling convention it uses doesn't match what Perl_croak_nocontext()   expects\, which can lead to crashes.   2) A message containing % characters will be interpreted as a printf format.  
  Both these are fixed by using a small station function as a wrapper\, which   takes a single string argument\, and passes to croak() a "%s" format string\,   followed by the string for the error message.  
  Add a test for this functionality.

So the reason for the test is to check gdbm fatal errors are properly passed to Perl code.

Provided the only place gdbm uses these fatal errors is when storing data and these are hidden by the mmaped I/O since gdbm-1.15\, I would vote for removing the test as we don't have any reliable way to provoke the fatal error.

-- Petr

p5pRT commented 6 years ago

From @ppisar

On 2018-06-26\, Petr Pisar \ppisar@&#8203;redhat\.com wrote​:

Thus I believe this is a bug in gdbm C library.

GNU dbm bug report \https://puszcza.gnu.org.ua/bugs/index.php?399.

-- Petr

p5pRT commented 6 years ago

From @graygnuorg

On Fri\, 29 Jun 2018 03​:16​:27 -0700\, ppisar wrote​:

On 2018-06-26\, Petr Pisar \ppisar@&#8203;redhat\.com wrote​:

Thus I believe this is a bug in gdbm C library.

GNU dbm bug report \https://puszcza.gnu.org.ua/bugs/index.php?399.

-- Petr

Fixed by http​://git.gnu.org.ua/cgit/gdbm.git/commit/?id=030e685eb9df82f63d73a1bf206da84b7aa52374. The change will appear in next release of GDBM.

p5pRT commented 6 years ago

From [Unknown Contact. See original ticket]

On Fri\, 29 Jun 2018 03​:16​:27 -0700\, ppisar wrote​:

On 2018-06-26\, Petr Pisar \ppisar@&#8203;redhat\.com wrote​:

Thus I believe this is a bug in gdbm C library.

GNU dbm bug report \https://puszcza.gnu.org.ua/bugs/index.php?399.

-- Petr

Fixed by http​://git.gnu.org.ua/cgit/gdbm.git/commit/?id=030e685eb9df82f63d73a1bf206da84b7aa52374. The change will appear in next release of GDBM.

p5pRT commented 6 years ago

From @graygnuorg

Here's the proposed change to the module​: http​://git.gnu.org.ua/cgit/gdbm/GDBM_File.git

It improves error handling and adds interfaces to the new functions that appeared in the recent releases of GDBM. It has been tested with GDBM 1.16.90 (current git HEAD) and 1.8.3 (the oldest one that could be in use\, as far as I can tell).

p5pRT commented 6 years ago

From [Unknown Contact. See original ticket]

Here's the proposed change to the module​: http​://git.gnu.org.ua/cgit/gdbm/GDBM_File.git

It improves error handling and adds interfaces to the new functions that appeared in the recent releases of GDBM. It has been tested with GDBM 1.16.90 (current git HEAD) and 1.8.3 (the oldest one that could be in use\, as far as I can tell).

p5pRT commented 6 years ago

From @graygnuorg

Fixed in GDBM version 1.17

p5pRT commented 6 years ago

From bluewind@xinu.at

Am Mon\, 30 Jul 2018 14​:48​:02 -0700\, gray@​gnu.org schrieb​:

Fixed in GDBM version 1.17

I still seem to get the same test failures even with gdbm 1.17. Do the tests (perl 5.28.0 release tarball here) pass for you with gdbm 1.17?

p5pRT commented 6 years ago

From cartas@frederico.me

On Wed\, 08 Aug 2018 04​:54​:36 -0700\, bluewind@​xinu.at wrote​:

Am Mon\, 30 Jul 2018 14​:48​:02 -0700\, gray@​gnu.org schrieb​:

Fixed in GDBM version 1.17

I still seem to get the same test failures even with gdbm 1.17. Do the tests (perl 5.28.0 release tarball here) pass for you with gdbm 1.17?

I am just reporting that from 5.24\, 5.26 and 5.28 I can reproduce the same error even with gdbm 1.7.1

p5pRT commented 6 years ago

From @shlomif

Hi\,

On Wed\, 08 Aug 2018 07​:03​:03 -0700 "Frederico Recsky via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

On Wed\, 08 Aug 2018 04​:54​:36 -0700\, bluewind@​xinu.at wrote​:

Am Mon\, 30 Jul 2018 14​:48​:02 -0700\, gray@​gnu.org schrieb​:

Fixed in GDBM version 1.17

I still seem to get the same test failures even with gdbm 1.17. Do the tests (perl 5.28.0 release tarball here) pass for you with gdbm 1.17?

I am just reporting that from 5.24\, 5.26 and 5.28 I can reproduce the same error even with gdbm 1.7.1

I am getting the test failure here as well with perlbrew and lib64gdbm-devel-1.17-1.mga7 on Mageia 7 x86-64.

--


Shlomi Fish http​://www.shlomifish.org/ http​://www.shlomifish.org/humour/bits/New-versions-of-the-GPL/

For every A\, Chuck Norris is both A and not-A. Chuck Norris is freaking everything.   — http​://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - http​://shlom.in/reply .

p5pRT commented 5 years ago

From @jkeenan

On Fri\, 10 Aug 2018 10​:46​:13 GMT\, shlomif@​shlomifish.org wrote​:

Hi\,

On Wed\, 08 Aug 2018 07​:03​:03 -0700 "Frederico Recsky via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

On Wed\, 08 Aug 2018 04​:54​:36 -0700\, bluewind@​xinu.at wrote​:

Am Mon\, 30 Jul 2018 14​:48​:02 -0700\, gray@​gnu.org schrieb​:

Fixed in GDBM version 1.17

I still seem to get the same test failures even with gdbm 1.17. Do the tests (perl 5.28.0 release tarball here) pass for you with gdbm 1.17?

I am just reporting that from 5.24\, 5.26 and 5.28 I can reproduce the same error even with gdbm 1.7.1

I am getting the test failure here as well with perlbrew and lib64gdbm-devel-1.17-1.mga7 on Mageia 7 x86-64.

I get the same failures in ext/GDBM_File/t/fatal.t on FreeBSD-13 with gdbm 1.18.1 on perl 5 blead.

##### $ uname -mrs FreeBSD 13.0-CURRENT amd64

$ pkg info | grep -i gdbm gdbm-1.18.1 GNU database manager

$ ./perl -Ilib -v | head -2 | tail -1 This is perl 5\, version 29\, subversion 5 (v5.29.5 (v5.29.4-101-gdf1e20e63c)) built for amd64-freebsd-thread-multi

$ ./perl -Ilib -V​:libs -V​:config_args libs='-lpthread -lgdbm -ldl -lm -lcrypt -lutil'; config_args='-des -Dusedevel -Duseithreads -Doptimize=-O2 -pipe -fstack-protector -fno-strict-aliasing';

$ cd t;./perl harness ../ext/GDBM_File/t/*.t; cd - ===( 2;0 1/8 1/? )============================================== # Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t .. Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests ../ext/GDBM_File/t/gdbm.t ... ok

Test Summary Report


../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2)   Failed tests​: 7-8   Non-zero exit status​: 2 Files=2\, Tests=142\, 1 wallclock secs ( 0.03 usr 0.01 sys + 0.24 cusr 0.08 csys = 0.36 CPU) Result​: FAIL #####

I notice also that these failures are endemic in certain of our smoke-testing reports. See http​://perl5.test-smoke.org/submatrix?test=../ext/GDBM_File/t/fatal.t.

The reports at that URL from FreeBSD-13 are\, I believe\, from a VM very similar to my own. The other reports are from Arch Linux smoke testing rigs.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 5 years ago

From @shlomif

On Tue\, 20 Nov 2018 12​:10​:58 -0800\, jkeenan wrote​:

On Fri\, 10 Aug 2018 10​:46​:13 GMT\, shlomif@​shlomifish.org wrote​:

Hi\,

On Wed\, 08 Aug 2018 07​:03​:03 -0700 "Frederico Recsky via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

On Wed\, 08 Aug 2018 04​:54​:36 -0700\, bluewind@​xinu.at wrote​:

Am Mon\, 30 Jul 2018 14​:48​:02 -0700\, gray@​gnu.org schrieb​:

Fixed in GDBM version 1.17

I still seem to get the same test failures even with gdbm 1.17. Do the tests (perl 5.28.0 release tarball here) pass for you with gdbm 1.17?

I am just reporting that from 5.24\, 5.26 and 5.28 I can reproduce the same error even with gdbm 1.7.1

I am getting the test failure here as well with perlbrew and lib64gdbm-devel-1.17-1.mga7 on Mageia 7 x86-64.

I get the same failures in ext/GDBM_File/t/fatal.t on FreeBSD-13 with gdbm 1.18.1 on perl 5 blead.

##### $ uname -mrs FreeBSD 13.0-CURRENT amd64

$ pkg info | grep -i gdbm gdbm-1.18.1 GNU database manager

$ ./perl -Ilib -v | head -2 | tail -1 This is perl 5\, version 29\, subversion 5 (v5.29.5 (v5.29.4-101- gdf1e20e63c)) built for amd64-freebsd-thread-multi

$ ./perl -Ilib -V​:libs -V​:config_args libs='-lpthread -lgdbm -ldl -lm -lcrypt -lutil'; config_args='-des -Dusedevel -Duseithreads -Doptimize=-O2 -pipe -fstack-protector -fno-strict-aliasing';

$ cd t;./perl harness ../ext/GDBM_File/t/*.t; cd - ===( 2;0 1/8 1/? )============================================== # Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t .. Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests ../ext/GDBM_File/t/gdbm.t ... ok

Test Summary Report ------------------- ../ext/GDBM_File/t/fatal.t (Wstat​: 512 Tests​: 8 Failed​: 2) Failed tests​: 7-8 Non-zero exit status​: 2 Files=2\, Tests=142\, 1 wallclock secs ( 0.03 usr 0.01 sys + 0.24 cusr 0.08 csys = 0.36 CPU) Result​: FAIL #####

I notice also that these failures are endemic in certain of our smoke- testing reports. See http​://perl5.test- smoke.org/submatrix?test=../ext/GDBM_File/t/fatal.t.

The reports at that URL from FreeBSD-13 are\, I believe\, from a VM very similar to my own. The other reports are from Arch Linux smoke testing rigs.

"perlbrew install perl-5.29.5" fails on mageia v7 x64 with lib64gdbm6-1.18.1-1.mga7 lib64gdbm_compat4-1.18.1-1.mga7 lib64gdbm-devel-1.18.1-1.mga7 with these errors. Dear GDBM devs\, can you please fix that?

p5pRT commented 5 years ago

From @eserte

This is a bug report for perl from slaven@​rezic.de\, generated with the help of perlbug 1.40 running under perl 5.26.3.


The test suite of perl 5.26.3 fails on a freebsd 12 system with gdbm-1.18.1 installed​:

../ext/GDBM_File/t/fatal.t ......................................... 1/8 # Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t ......................................... Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests

The same problem happens also with perl 5.28.1 on a freebsd 13 system\, same gdbm package installed.



Flags​:   category=library   severity=low   module=GDBM_File


Site configuration information for perl 5.26.3​:

Configured by eserte at Thu Nov 29 20​:10​:39 UTC 2018.

Summary of my perl5 (revision 5 version 26 subversion 3) configuration​:  
  Platform​:   osname=freebsd   osvers=12.0-prerelease   archname=amd64-freebsd   uname='freebsd cloud1.bbbike.org 12.0-prerelease freebsd 12.0-prerelease ad6e056e343(stable12) generic amd64 '   config_args='-ds -e -Dprefix=/usr/perl5.26.3p -Dcf_email=srezic@​cpan.org -Doptimize=-O2 -pipe'   hint=recommended   useposix=true   d_sigaction=define   useithreads=undef   usemultiplicity=undef   use64bitint=define   use64bitall=define   uselongdouble=undef   usemymalloc=n   default_inc_excludes_dot=define   bincompat5005=undef   Compiler​:   cc='cc'   ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2'   optimize='-O2 -pipe'   cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'   ccversion=''   gccversion='4.2.1 Compatible FreeBSD Clang 6.0.1 (tags/RELEASE_601/final 335540)'   gccosandvers=''   intsize=4   longsize=8   ptrsize=8   doublesize=8   byteorder=12345678   doublekind=3   d_longlong=define   longlongsize=8   d_longdbl=define   longdblsize=16   longdblkind=3   ivtype='long'   ivsize=8   nvtype='double'   nvsize=8   Off_t='off_t'   lseeksize=8   alignbytes=8   prototype=define   Linker and Libraries​:   ld='cc'   ldflags ='-pthread -Wl\,-E -fstack-protector-strong -L/usr/local/lib'   libpth=/usr/lib /usr/local/lib /usr/lib/clang/6.0.1/lib /usr/lib   libs=-lpthread -lgdbm -ldl -lm -lcrypt -lutil -lc   perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc   libc=   so=so   useshrplib=false   libperl=libperl.a   gnulibc_version=''   Dynamic Linking​:   dlsrc=dl_dlopen.xs   dlext=so   d_dlsymun=undef   ccdlflags=' '   cccdlflags='-DPIC -fPIC'   lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'


@​INC for perl 5.26.3​:   lib   /usr/perl5.26.3p/lib/site_perl/5.26.3/amd64-freebsd   /usr/perl5.26.3p/lib/site_perl/5.26.3   /usr/perl5.26.3p/lib/5.26.3/amd64-freebsd   /usr/perl5.26.3p/lib/5.26.3


Environment for perl 5.26.3​:   HOME=/home/eserte   LANG (unset)   LANGUAGE (unset)   LD_LIBRARY_PATH (unset)   LOGDIR (unset)   PATH=/usr/local/bin​:/usr/bin​:/bin​:/usr/local/sbin​:/usr/sbin​:/sbin​:/home/eserte/bin/freebsd12.0​:/home/eserte/bin/sh​:/home/eserte/bin​:/home/eserte/bin/pistachio-perl/bin​:/usr/games​:/home/eserte/devel   PERLDOC=-MPod​::Perldoc​::ToTextOverstrike   PERL_BADLANG (unset)   SHELL=/usr/local/bin/zsh

p5pRT commented 5 years ago

From @eserte

Dana Thu\, 29 Nov 2018 12​:57​:43 -0800\, slaven@​rezic.de reče​:

This is a bug report for perl from slaven@​rezic.de\, generated with the help of perlbug 1.40 running under perl 5.26.3.

----------------------------------------------------------------- The test suite of perl 5.26.3 fails on a freebsd 12 system with gdbm- 1.18.1 installed​:

../ext/GDBM_File/t/fatal.t ......................................... 1/8 # Failed test 'Trapped error when attempting to write to knobbled GDBM_File' # at t/fatal.t line 37. # got​: '1' # expected​: undef

# Failed test 'expected error message from GDBM_File' # at t/fatal.t line 46. # '' # doesn't match '(?^​: at .*\bfatal\.t line \d+\.\n\z)' # Looks like you failed 2 tests of 8. ../ext/GDBM_File/t/fatal.t ......................................... Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/8 subtests

The same problem happens also with perl 5.28.1 on a freebsd 13 system\, same gdbm package installed.

----------------------------------------------------------------- --- Flags​: category=library severity=low module=GDBM_File --- Site configuration information for perl 5.26.3​:

Configured by eserte at Thu Nov 29 20​:10​:39 UTC 2018.

Summary of my perl5 (revision 5 version 26 subversion 3) configuration​:

Platform​: osname=freebsd osvers=12.0-prerelease archname=amd64-freebsd uname='freebsd cloud1.bbbike.org 12.0-prerelease freebsd 12.0- prerelease ad6e056e343(stable12) generic amd64 ' config_args='-ds -e -Dprefix=/usr/perl5.26.3p -Dcf_email=srezic@​cpan.org -Doptimize=-O2 -pipe' hint=recommended useposix=true d_sigaction=define useithreads=undef usemultiplicity=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler​: cc='cc' ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2' optimize='-O2 -pipe' cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include' ccversion='' gccversion='4.2.1 Compatible FreeBSD Clang 6.0.1 (tags/RELEASE_601/final 335540)' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries​: ld='cc' ldflags ='-pthread -Wl\,-E -fstack-protector-strong -L/usr/local/lib' libpth=/usr/lib /usr/local/lib /usr/lib/clang/6.0.1/lib /usr/lib libs=-lpthread -lgdbm -ldl -lm -lcrypt -lutil -lc perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc libc= so=so useshrplib=false libperl=libperl.a gnulibc_version='' Dynamic Linking​: dlsrc=dl_dlopen.xs dlext=so d_dlsymun=undef ccdlflags=' ' cccdlflags='-DPIC -fPIC' lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'

--- @​INC for perl 5.26.3​: lib /usr/perl5.26.3p/lib/site_perl/5.26.3/amd64-freebsd /usr/perl5.26.3p/lib/site_perl/5.26.3 /usr/perl5.26.3p/lib/5.26.3/amd64-freebsd /usr/perl5.26.3p/lib/5.26.3

--- Environment for perl 5.26.3​: HOME=/home/eserte LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/usr/local/bin​:/usr/bin​:/bin​:/usr/local/sbin​:/usr/sbin​:/sbin​:/home/eserte/bin/freebsd12.0​:/home/eserte/bin/sh​:/home/eserte/bin​:/home/eserte/bin/pistachio- perl/bin​:/usr/games​:/home/eserte/devel PERLDOC=-MPod​::Perldoc​::ToTextOverstrike PERL_BADLANG (unset) SHELL=/usr/local/bin/zsh

Same failure on a debian/buster system with perl 5.28.1. Here libgdbm6-1.18.1-1 is installed.

p5pRT commented 5 years ago

From @jkeenan

3rd time this has been reported; merging into first ticket.

Any GDBM experts out there?

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 5 years ago

From @jkeenan

On Fri\, 30 Nov 2018 02​:46​:45 GMT\, jkeenan wrote​:

3rd time this has been reported; merging into first ticket.

Any GDBM experts out there?

Let's watch smoke-test reports to see if this commit from Dave Mitchell today addresses the problem​:

https://perl5.git.perl.org/perl.git/commitdiff/0d9e812d

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 5 years ago

From @bingos

On Fri\, Dec 14\, 2018 at 03​:58​:07PM -0800\, James E Keenan via RT wrote​:

On Fri\, 30 Nov 2018 02​:46​:45 GMT\, jkeenan wrote​:

3rd time this has been reported; merging into first ticket.

Any GDBM experts out there?

Let's watch smoke-test reports to see if this commit from Dave Mitchell today addresses the problem​:

https://perl5.git.perl.org/perl.git/commitdiff/0d9e812d

--- via perlbug​: queue​: perl5 status​: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295

I have just tested blead on the FreeBSD machine I got errors for that test on the 20th November.

FreeBSD ********* 11.2-RELEASE-p2 FreeBSD 11.2-RELEASE-p2 #0​: Tue Aug 14 21​:45​:40 UTC 2018 amd64 FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0) $ pkg info | grep gdbm gdbm-1.18.1 GNU database manager

All tests successful. Files=2630\, Tests=1169659\, 214 wallclock secs (131.48 usr 20.82 sys + 708.98 cusr 91.52 csys = 952.80 CPU) Result​: PASS

$ ./perl -v

This is perl 5\, version 29\, subversion 6 (v5.29.6 (v5.29.5-110-g0d9e812de5)) built for amd64-freebsd

Thumbs up.

-- Chris Williams aka BinGOs PGP ID 0x4658671F http​://www.gumbynet.org.uk

p5pRT commented 5 years ago

From @shlomif

On Sat\, 15 Dec 2018 03​:16​:07 -0800 "Kidney Bingos via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

On Fri\, Dec 14\, 2018 at 03​:58​:07PM -0800\, James E Keenan via RT wrote​:

On Fri\, 30 Nov 2018 02​:46​:45 GMT\, jkeenan wrote​:

3rd time this has been reported; merging into first ticket.

Any GDBM experts out there?

Let's watch smoke-test reports to see if this commit from Dave Mitchell today addresses the problem​:

https://perl5.git.perl.org/perl.git/commitdiff/0d9e812d

--- via perlbug​: queue​: perl5 status​: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295&nbsp;

I have just tested blead on the FreeBSD machine I got errors for that test on the 20th November.

FreeBSD ********* 11.2-RELEASE-p2 FreeBSD 11.2-RELEASE-p2 #0​: Tue Aug 14 21​:45​:40 UTC 2018 amd64 FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0) $ pkg info | grep gdbm gdbm-1.18.1 GNU database manager

All tests successful. Files=2630\, Tests=1169659\, 214 wallclock secs (131.48 usr 20.82 sys + 708.98 cusr 91.52 csys = 952.80 CPU) Result​: PASS

$ ./perl -v

This is perl 5\, version 29\, subversion 6 (v5.29.6 (v5.29.5-110-g0d9e812de5)) built for amd64-freebsd

Latest blead passes the tests on mageia linux v7 x86-64 too.

Thumbs up.

--


Shlomi Fish http​://www.shlomifish.org/ Humanity - Parody of Modern Life - http​://shlom.in/humanity

Major Kira​: Well\, duh! The prophets spoke of several of The Invisible’s children and their whereabouts. Jadzia​: Major\, you and I will need to talk someday about that “duh”.   — http​://www.shlomifish.org/humour/Star-Trek/We-the-Living-Dead/

Please reply to list if it's a mailing list post - http​://shlom.in/reply .

p5pRT commented 5 years ago

From @jkeenan

On Sat\, 15 Dec 2018 14​:51​:10 GMT\, shlomif@​shlomifish.org wrote​:

On Sat\, 15 Dec 2018 03​:16​:07 -0800 "Kidney Bingos via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

On Fri\, Dec 14\, 2018 at 03​:58​:07PM -0800\, James E Keenan via RT wrote​:

On Fri\, 30 Nov 2018 02​:46​:45 GMT\, jkeenan wrote​:

3rd time this has been reported; merging into first ticket.

Any GDBM experts out there?

Let's watch smoke-test reports to see if this commit from Dave Mitchell today addresses the problem​:

https://perl5.git.perl.org/perl.git/commitdiff/0d9e812d

--- via perlbug​: queue​: perl5 status​: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295

I have just tested blead on the FreeBSD machine I got errors for that test on the 20th November.

FreeBSD ********* 11.2-RELEASE-p2 FreeBSD 11.2-RELEASE-p2 #0​: Tue Aug 14 21​:45​:40 UTC 2018 amd64 FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0) $ pkg info | grep gdbm gdbm-1.18.1 GNU database manager

All tests successful. Files=2630\, Tests=1169659\, 214 wallclock secs (131.48 usr 20.82 sys + 708.98 cusr 91.52 csys = 952.80 CPU) Result​: PASS

$ ./perl -v

This is perl 5\, version 29\, subversion 6 (v5.29.6 (v5.29.5-110- g0d9e812de5)) built for amd64-freebsd

Latest blead passes the tests on mageia linux v7 x86-64 too.

Thumbs up.

I was able to get a PASS on Linux with the more recent version of gdbm and on FreeBSD-13. Smoke-testing on FreeBSD-13 is also showing PASS\, e.g.\, http​://perl5.test-smoke.org/report/76136.

Resolving ticket.

-- James E Keenan (jkeenan@​cpan.org)

p5pRT commented 5 years ago

@jkeenan - Status changed from 'open' to 'pending release'

p5pRT commented 5 years ago

From @eserte

Dana Sun\, 16 Dec 2018 06​:15​:23 -0800\, jkeenan reče​:

On Sat\, 15 Dec 2018 14​:51​:10 GMT\, shlomif@​shlomifish.org wrote​:

On Sat\, 15 Dec 2018 03​:16​:07 -0800 "Kidney Bingos via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

On Fri\, Dec 14\, 2018 at 03​:58​:07PM -0800\, James E Keenan via RT wrote​:

On Fri\, 30 Nov 2018 02​:46​:45 GMT\, jkeenan wrote​:

3rd time this has been reported; merging into first ticket.

Any GDBM experts out there?

Let's watch smoke-test reports to see if this commit from Dave Mitchell today addresses the problem​:

https://perl5.git.perl.org/perl.git/commitdiff/0d9e812d

--- via perlbug​: queue​: perl5 status​: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295

I have just tested blead on the FreeBSD machine I got errors for that test on the 20th November.

FreeBSD ********* 11.2-RELEASE-p2 FreeBSD 11.2-RELEASE-p2 #0​: Tue Aug 14 21​:45​:40 UTC 2018 amd64 FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0) $ pkg info | grep gdbm gdbm-1.18.1 GNU database manager

All tests successful. Files=2630\, Tests=1169659\, 214 wallclock secs (131.48 usr 20.82 sys + 708.98 cusr 91.52 csys = 952.80 CPU) Result​: PASS

$ ./perl -v

This is perl 5\, version 29\, subversion 6 (v5.29.6 (v5.29.5-110- g0d9e812de5)) built for amd64-freebsd

Latest blead passes the tests on mageia linux v7 x86-64 too.

Thumbs up.

I was able to get a PASS on Linux with the more recent version of gdbm and on FreeBSD-13. Smoke-testing on FreeBSD-13 is also showing PASS\, e.g.\, http​://perl5.test-smoke.org/report/76136.

Resolving ticket.

However\, ext/GDBM_File/t/fatal.t in perl 5.28.2-RC1 still fails on my FreeBSD 12 and 13 systems.

Regards\,   Slaven

p5pRT commented 5 years ago

From @shlomif

On Fri\, 05 Apr 2019 23​:40​:31 -0700 "slaven@​rezic.de via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

Dana Sun\, 16 Dec 2018 06​:15​:23 -0800\, jkeenan reče​:

On Sat\, 15 Dec 2018 14​:51​:10 GMT\, shlomif@​shlomifish.org wrote​:

On Sat\, 15 Dec 2018 03​:16​:07 -0800 "Kidney Bingos via RT" \perlbug\-followup@&#8203;perl\.org wrote​:

On Fri\, Dec 14\, 2018 at 03​:58​:07PM -0800\, James E Keenan via RT wrote​:

On Fri\, 30 Nov 2018 02​:46​:45 GMT\, jkeenan wrote​:

3rd time this has been reported; merging into first ticket.

Any GDBM experts out there?

Let's watch smoke-test reports to see if this commit from Dave Mitchell today addresses the problem​:

https://perl5.git.perl.org/perl.git/commitdiff/0d9e812d

--- via perlbug​: queue​: perl5 status​: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295&nbsp;

I have just tested blead on the FreeBSD machine I got errors for that test on the 20th November.

FreeBSD ********* 11.2-RELEASE-p2 FreeBSD 11.2-RELEASE-p2 #0​: Tue Aug 14 21​:45​:40 UTC 2018 amd64 FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0) $ pkg info | grep gdbm gdbm-1.18.1 GNU database manager

All tests successful. Files=2630\, Tests=1169659\, 214 wallclock secs (131.48 usr 20.82 sys + 708.98 cusr 91.52 csys = 952.80 CPU) Result​: PASS

$ ./perl -v

This is perl 5\, version 29\, subversion 6 (v5.29.6 (v5.29.5-110- g0d9e812de5)) built for amd64-freebsd

Latest blead passes the tests on mageia linux v7 x86-64 too.

Thumbs up.

I was able to get a PASS on Linux with the more recent version of gdbm and on FreeBSD-13. Smoke-testing on FreeBSD-13 is also showing PASS\, e.g.\, http​://perl5.test-smoke.org/report/76136.

Resolving ticket.

However\, ext/GDBM_File/t/fatal.t in perl 5.28.2-RC1 still fails on my FreeBSD 12 and 13 systems.

I am getting failure on -RC1 on mageia linux v7 too.

Regards\, Slaven

--- via perlbug​: queue​: perl5 status​: pending release https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295

--


Shlomi Fish http​://www.shlomifish.org/ Best Introductory Programming Language - http​://shlom.in/intro-lang

“The best time to plant a tree was 20 years ago. The second best time is now.”   – A Reported Proverb

Please reply to list if it's a mailing list post - http​://shlom.in/reply .

p5pRT commented 5 years ago

From @iabyn

On Fri\, Apr 05\, 2019 at 11​:40​:31PM -0700\, slaven@​rezic.de via RT wrote​:

Dana Sun\, 16 Dec 2018 06​:15​:23 -0800\, jkeenan reče​:

I was able to get a PASS on Linux with the more recent version of gdbm and on FreeBSD-13. Smoke-testing on FreeBSD-13 is also showing PASS\, e.g.\, http​://perl5.test-smoke.org/report/76136.

Resolving ticket.

However\, ext/GDBM_File/t/fatal.t in perl 5.28.2-RC1 still fails on my FreeBSD 12 and 13 systems.

Cherry-picking this commit fixes it​:

commit 0d9e812de5885109532ec8bf484f165213ab97cb Author​: David Mitchell \davem@&#8203;iabyn\.com AuthorDate​: Fri Dec 14 16​:54​:42 2018 +0000 Commit​: David Mitchell \davem@&#8203;iabyn\.com CommitDate​: Fri Dec 14 16​:54​:42 2018 +0000

  ext/GDBM_File/t/fatal.t​: handle non-fatality  
  This script is supposed to exercise the error handling callback   mechanism in gdbm\, by triggering an error by surreptitiously closing   the file handle which gdbm has opened.  
  However\, this doesn't trigger an error in newer releases of the gdbm   library\, which uses mmap() rather than write() etc. In fact I can't see   any way of triggering an error​: so just skip the relevant tests if we   can't trigger a failure.

-- "You may not work around any technical limitations in the software"   -- Windows Vista license

p5pRT commented 5 years ago

From @khwilliamson

Thank you for filing this report. You have helped make Perl better.

With the release today of Perl 5.30.0\, this and 160 other issues have been resolved.

Perl 5.30.0 may be downloaded via​: https://metacpan.org/release/XSAWYERX/perl-5.30.0

If you find that the problem persists\, feel free to reopen this ticket.

p5pRT commented 5 years ago

@khwilliamson - Status changed from 'pending release' to 'resolved'