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: [email protected]
Reporter: [email protected]
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.