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 Aug 16 06:34:49 2018  
 
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 Aug 21 11:42:45 2018, 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 Aug 21 09:37:10 2018, comment #5:

Thanks.

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

Marek Skalický <mskalick>
Sun Aug 19 07:02:17 2018, 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 Aug 16 10:03:41 2018, 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 Aug 16 09:51:40 2018, 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 Aug 16 09:38:32 2018, 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 Aug 16 06:34:49 2018, original submission:

Hi,
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.

Thanks,
Marek

[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 Aug 21 11:42:45 2018grayStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Sun Aug 19 07:02:17 2018grayStatusNeed Info=>Ready For Test
    Thu Aug 16 09:38:32 2018grayStatusNone=>Need Info
      Assigned toNone=>gray
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup+gray