Overview
Request 645670 accepted
- update to 1.18.1:
* Fix debian bug 910911: This restores backward compatibility with
databases created by version 1.8 (and some later versions, with
mmapped I/O disabled).
- update to 1.18:
* Fix directory entry validation
* Fix improper use of GDBM_DEBUG macro
* Fix spurious error from gdbm_dump and gdbm_export
* Make sure gdbm_sync always returns a meaningful value
- includes changes from 1.17:
* Fix bug in gdbm_dump function, it did not clear the
GDBM_ITEM_NOT_FOUND error marker, which is set upon its normal
termination
- changes upstreamed:
* gdbm_close() and gdbm_sync() now return 0 on success. On error,
they return -1 and set gdbm_errno and errno to the appropriate
error codes - drop gdbm-close-and-sync-return-value.patch
- update to 1.16:
* Fix typo
* New gdbmtool variables: coalesce and centfree
* src/falloc.c (avail_lookup): Remove the start parameter.
(_gdbm_put_av_elem): Rewrite the "can_merge" loop.
- added gdbm-close-and-sync-return-value.patch
see https://puszcza.gnu.org.ua/bugs/index.php?399
- update to 1.15:
* Extensive database consistency checking
* Improved error checking
Breaks perl:
[ 1161s] lib/warnings ................................................... ok [ 1161s] Failed 1 test out of 2451, 99.96% okay. [ 1161s] ../ext/GDBM_File/t/fatal.t [ 1161s] ### Since not all tests were successful, you may want to run some of [ 1161s] ### them individually and examine any diagnostic messages they produce. [ 1161s] ### See the INSTALL document's section on "make test". [ 1161s] ### You have a good chance to get more information by running [ 1161s] ### ./perl harness [ 1161s] ### in the 't' directory since most (>=80%) of the tests succeeded. [ 1161s] ### You may have to set your dynamic library search path, [ 1161s] ### LD_LIBRARY_PATH, to point to the build directory: [ 1161s] ### setenv LD_LIBRARY_PATH `pwd`; cd t; ./perl harness [ 1161s] ### LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH; cd t; ./perl harness [ 1161s] ### export LD_LIBRARY_PATH=`pwd`; cd t; ./perl harness [ 1161s] ### for csh-style shells, like tcsh; or for traditional/modern [ 1161s] ### Bourne-style shells, like bash, ksh, and zsh, respectively. [ 1161s] Elapsed: 801 sec [ 1161s] u=8.76 s=2.66 cu=473.67 cs=27.67 scripts=2451 tests=1242595 [ 1161s] make: *** [makefile:793: test] Error 1 [ 1161s] error: Bad exit status from /var/tmp/rpm-tmp.RLX7sN (%check)
CC @mlschroe
Indeed, for local build I get:
[ 820s] # at t/fatal.t line 37. [ 820s] # got: '1' [ 820s] # expected: undef [ 820s] # Failed test 'expected error message from GDBM_File' [ 820s] # at t/fatal.t line 46. [ 820s] # '' [ 820s] # doesn't match '(?^: at .*\bfatal\.t line \d+\.\n\z)' [ 820s] # Looks like you failed 2 tests of 8. [ 820s] FAILED at test 7
https://rt.perl.org/Public/Bug/Display.html?id=133295 https://puszcza.gnu.org.ua/bugs/index.php?399
Apologize I understand the issue only marginally.
If I understand correctly, the test closes descriptor underneath GDM_File and waiting gdbm to error out. For the reasons explained in both bugs, gdbm_STORE() (i. e. gdm_store(), $h{Perl} = 'Rules';), does not sync immediately anymore already for some time and thus the error does not pop up. It could be raised during gdbm_DESTROY (untie %h;), but gdm_close() is void and cannot report an error.
This is fixed by http://git.gnu.org.ua/cgit/gdbm.git/commit/?id=030e685eb9df82f63d73a1bf206da84b7aa52374, and this is already part of gdbm 1.18.
I think now it is perl side which has to be fixed, that means GDBM_File.xs' gdbm_DESTROY(db) has to check return value of gdbm_close(db); and propagate error.
I guess the result of the test could be ignored for now.
Request History
pgajdos created request
- update to 1.18.1:
* Fix debian bug 910911: This restores backward compatibility with
databases created by version 1.8 (and some later versions, with
mmapped I/O disabled).
- update to 1.18:
* Fix directory entry validation
* Fix improper use of GDBM_DEBUG macro
* Fix spurious error from gdbm_dump and gdbm_export
* Make sure gdbm_sync always returns a meaningful value
- includes changes from 1.17:
* Fix bug in gdbm_dump function, it did not clear the
GDBM_ITEM_NOT_FOUND error marker, which is set upon its normal
termination
- changes upstreamed:
* gdbm_close() and gdbm_sync() now return 0 on success. On error,
they return -1 and set gdbm_errno and errno to the appropriate
error codes - drop gdbm-close-and-sync-return-value.patch
- update to 1.16:
* Fix typo
* New gdbmtool variables: coalesce and centfree
* src/falloc.c (avail_lookup): Remove the start parameter.
(_gdbm_put_av_elem): Rewrite the "can_merge" loop.
- added gdbm-close-and-sync-return-value.patch
see https://puszcza.gnu.org.ua/bugs/index.php?399
- update to 1.15:
* Extensive database consistency checking
* Improved error checking
factory-auto added opensuse-review-team as a reviewer
Please review sources
factory-auto added repo-checker as a reviewer
Please review build success
factory-auto accepted review
Check script succeeded
licensedigger accepted review
ok
dimstar_suse set openSUSE:Factory:Staging:C as a staging project
Being evaluated by staging project "openSUSE:Factory:Staging:C"
dimstar_suse accepted review
Picked openSUSE:Factory:Staging:C
dimstar accepted review
repo-checker accepted review
broken cycle detection
coolo accepted review
ready to accept
coolo approved review
ready to accept
coolo accepted request
Accept to openSUSE:Factory
ok