https://bz.apache.org/SpamAssassin/show_bug.cgi?id=8237
Bug ID: 8237 Summary: TxRep/AWL failure using GDBM_File storage Product: Spamassassin Version: 4.0.1 Hardware: All OS: All Status: NEW Severity: normal Priority: P2 Component: Libraries Assignee: dev@spamassassin.apache.org Reporter: sid...@sidney.com Target Milestone: Undefined This bug can be reproduced by editing t/sa_txrep.t to add this line to the tstprefs autowelcome_list_db_modules GDBM_File That breaks the test. I tracked it down to a bug in the remove_entry function in DBBasedAddrList.pm where the keys are deleted in a loop that starts with while (my ($key, $value) = each %{$self->{accum}}) { According to the perldoc https://perldoc.perl.org/functions/each after explaining that the code we use is safe to use with hashes as an explicit exception to the ordering behaviour rule against deleting elements of a hash in an each loop, it goes on to say "Tied hashes may have a different ordering behaviour to perl's hash implementation." And apparently DB_File and SDBM_File don't break when we do that, but GDBM_File does. I'm testing a patch now and will upload it soon. Unfortunately, this does not explain bug 8236 as the SQL code does not use tied hashes. -- You are receiving this mail because: You are the assignee for the bug.