bugGNU dbm - Bugs: bug #402, gdbm 1.15 fails qsf testsuite

Show feedback again

You are not allowed to post comments on this tracker with your current authentification level.

bug #402: gdbm 1.15 fails qsf testsuite

Submitted by:  Marek Skalický <mskalick>
Submitted on:  Thu 16 Aug 2018 09:34:49 AM EEST  
Category: NonePriority: 5 - Normal
Severity: 5 - NormalStatus: Fixed
Privacy: PublicAssigned to: Sergey Poznyakoff <gray>
Open/Closed: Closed

(Jump to the original submission Jump to the original submission)

Tue 21 Aug 2018 02:42:45 PM EEST, comment #6:

Great. I have released version 1.18, which includes this fix (among others). Thank you.

Sergey Poznyakoff <gray>
Project AdministratorIn charge of this item.
Tue 21 Aug 2018 12:37:10 PM EEST, comment #5:


I can confirm, that qsf testsuite is passing with the gdbm fix.

Marek Skalický <mskalick>
Sun 19 Aug 2018 10:02:17 AM EEST, comment #4:

Hi Marek,

I was wrong. The validation function overlooked the fact that the initial allocation of second block for the directory can be eventually returned back to the available list when the directory is expanded during bucket splitting. So indeed, the correct
address check is dbf->dir[dir_index] >= dbf->header->block_size. I have fixed this in commit 64ef7e82. Please confirm that it fixes the testsuite. Thanks a lot for your help!

Sergey Poznyakoff <gray>
Project AdministratorIn charge of this item.
Thu 16 Aug 2018 01:03:41 PM EEST, comment #3:

I tested it on Slackware 14.2. Of course, another distribution can make great difference, so I'll be grateful if you could provide a platform for testing. Docker container will be quite OK for the purpose.

Sergey Poznyakoff <gray>
Project AdministratorIn charge of this item.
Thu 16 Aug 2018 12:51:40 PM EEST, comment #2:

Thanks for testing it. Test is failing for me with same gdbm and qsf version (with no downstream patches in both cases).

It happened to me occasionally that it passed. But really rarely - for the first time I tried it:-) And then it failed in all my attempts...

So please try it repeatedly. (sorry, I know that it's not a specific instruction)

I'm trying it in Fedora Rawhide (gcc-8.2.1,glibc-2.28,systemd-239). Where did you tried it?

If its different distribution. Different compiler or libraries could cause the issue. So I can try to prepare a reproducer in Fedora for you... (could it be in Docker container?)

Marek Skalický <mskalick>
Thu 16 Aug 2018 12:38:32 PM EEST, comment #1:

Hi Marek. No, the test in gdbm_dir_entry_valid_p is correct. The test failure indicates that the database got corrupted in the process. Removing the check will just postpone the emergence of real problems until later. Unfortunately I was not able to reproduce the failure with GDBM 1.17 and qsf 1.2.11. Any specific instructions?

Sergey Poznyakoff <gray>
Project AdministratorIn charge of this item.
Thu 16 Aug 2018 09:34:49 AM EEST, original submission:

updated gdbm 1.15 (and later) fails qsf testsuite. More info can be found in [1] (maybe also related to debian bug report [2])

Fedora qsf maintainer bisected the gdbm code and found, that the issue is caused by commit http://git.savannah.gnu.org/cgit/gdbm.git/commit/?id=655cd193549e20ea8a8e77125adec7c5909c067e

Is it possible that '2*' in gdbm_dir_entry_valid_p function is wrong? With 'dbf->dir[dir_index] >= dbf->header->block_size;' test suite is passing again.


[1] https://bugzilla.redhat.com/show_bug.cgi?id=1607290
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=904006

Marek Skalický <mskalick>


No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by gray (Posted a comment)
  • -unavailable- added by mskalick (Submitted the item)

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.


    Please enter the title of George Orwell's famous dystopian book (it's a date):



    5 latest changes follow.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 21 Aug 2018 02:42:45 PM EESTgrayStatusReady For Test=>Fixed
    Sun 19 Aug 2018 10:02:17 AM EESTgrayStatusNeed Info=>Ready For Test
    Thu 16 Aug 2018 12:38:32 PM EESTgrayStatusNone=>Need Info
      Assigned toNone=>gray
    Show feedback again

    Back to the top

    Powered by Savane 3.1-cleanup+gray