https://bugzilla.redhat.com/show_bug.cgi?id=1193177
Bug ID: 1193177 Summary: sqlite3_drv bad memory free and severe performance bug - with patch Product: Fedora EPEL Version: el6 Component: dspam Severity: medium Assignee: nathanael@gnat.ca Reporter: stuart@gathman.org QA Contact: extras-qa@fedoraproject.org CC: nathanael@gnat.ca, perl-devel@lists.fedoraproject.org
Created attachment 992325 --> https://bugzilla.redhat.com/attachment.cgi?id=992325&action=edit Patch for problems reported
Description of problem: The dspam sqlite3_drv runs in auto_commit mode, resulting in 1000s of transactions on a single email - rendering it unusably slow. Further, it crashes on sql errors (include expected failures such as with _ds_verify_signature) because it uses the system free() on the error message from sqlite3, instead of sqlite3_free().
Version-Release number of selected component (if applicable): dspam-3.10.2-4.el6.x86_64
How reproducible: always
Steps to Reproduce: 1. run dspam_train with sqlite3 configured to see performance bug. 2. verify_signature error can be seen eventually in normal operation, but more quickly with the pydspam-1.3 test suite, with Dspam.py modified to load the sqlite3 driver (one line change). Apply the performance bug fix first - or it will be a while... 3.
Actual results: Unusably slow, and crashes on verify_signature when signature does not exist.
Expected results: Reasonable performance, and no crashes.
Additional info:
https://pypi.python.org/pypi?%3Aaction=pkg_edit&name=pydspam
Patch to fix the problems attached.