Bug 2218973

Summary: perl-DBD-Mysql is returning 0 in amavisd for some mysql columns.
Product: Red Hat Enterprise Linux 9 Reporter: Nathan Coulson <conathan>
Component: perl-DBD-MySQLAssignee: perl-maint-list
Status: NEW --- QA Contact: RHEL CS Apps Subsystem QE <rhel-cs-apps-subsystem-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.2CC: carl, mspacek
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Patch from https://github.com/perl5-dbi/DBD-mysql/issues/78 for EL9
none
Patch from https://github.com/perl5-dbi/DBD-mysql/issues/78 for EL8 none

Description Nathan Coulson 2023-06-30 18:22:58 UTC
Created attachment 1973447 [details]
Patch from https://github.com/perl5-dbi/DBD-mysql/issues/78 for EL9

Description of problem:
Cross Posting from https://bugzilla.redhat.com/show_bug.cgi?id=2218970, but RHEL 9.2 and 8.8 seem to be affected by https://github.com/perl5-dbi/DBD-mysql/issues/78.

In amavisd, When using a mariadb database for looking up the tagged threshold, it always returns 0 for values obtained from the database

Version-Release number of selected component (if applicable):
* EL9
** amavis 2.13.0-4.el9
** perl-DBD-MySQL 4.050-13
* EL8
** amavis 2.12.1-5.el8
** perl-DBD-MySQL 4.046-3

How reproducible:
Always


Steps to Reproduce:
1.Install Amavis
2. Configure @lookup_sql_dsn to point at a mysql database (Schema at https://github.com/srault95/amavisd-new/blob/master/README_FILES/README.sql-mysql)
3. Setup a policy with spam_tag level set to a value like 5,

Actual results:
Jun 27 13:43:25 aggelos-front4 amavis[5795]: (05795-01) spam-tag, <REDACTED> -> <REDACTED>, Yes, score=3.001 tagged_above=-100 required=0 tests=[ALL_TRUSTED=-1, BAYES_99=3.5, BAYES_999=0.5, TVD_SPACE_RATIO=0.001] autolearn=no autolearn_force=no
* required = 0, when it should be 5

Expected results:
Jun 27 15:10:43 aggelos-front4 amavis[147269]: (147269-01) spam-tag, <REDACTED> -> <REDACTED>, No, score=3.001 tagged_above=-100 required=5 tests=[ALL_TRUSTED=-1, BAYES_99=3.5, BAYES_999=0.5, TVD_SPACE_RATIO=0.001] autolearn=no autolearn_force=no


Additional info:
I believe this is due to https://github.com/perl5-dbi/DBD-mysql/issues/78, which seems to be committed to perl-DBD-MySQL master, but not in the 4.046 or 4.050 release

I patched the DBD-MySQL-4.0.50 (obtained from the ticket) provided by AlmaLinux 9 with the attached patch, and this gives me the expected results.

Comment 1 Nathan Coulson 2023-06-30 18:24:17 UTC
Created attachment 1973448 [details]
Patch from https://github.com/perl5-dbi/DBD-mysql/issues/78 for EL8

Comment 2 Michal Josef Spacek 2023-07-24 19:21:01 UTC
This fix is very problematic. When you read full thread in https://github.com/perl5-dbi/DBD-mysql/issues/78, you could see that fix will broke data in some situations. I thinks that this kind of changes must be clearly define in some new release, but fix of the old release isn't possible. I believe.