summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Config
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2009-03-02 02:21:54 +0100
committermkanat%bugzilla.org <>2009-03-02 02:21:54 +0100
commita28edf3c2423e748f0919ea7a803324c5b269e40 (patch)
tree43c64de446c6d0c4f555d5805ae65ac5375ace00 /Bugzilla/Config
parent60900705412d6512db3eb8bae39da50fc5400a7d (diff)
downloadbugzilla-a28edf3c2423e748f0919ea7a803324c5b269e40.tar.gz
bugzilla-a28edf3c2423e748f0919ea7a803324c5b269e40.tar.xz
Bug 480001: MySQL 5.1.31 throws an error when you try to SET SESSION max_allowed_packet (and previous versions of MySQL were just ignoring the SET SESSION), so just warn people if their max_allowed_packet is too small
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit
Diffstat (limited to 'Bugzilla/Config')
-rw-r--r--Bugzilla/Config/Attachment.pm2
-rw-r--r--Bugzilla/Config/Common.pm19
2 files changed, 20 insertions, 1 deletions
diff --git a/Bugzilla/Config/Attachment.pm b/Bugzilla/Config/Attachment.pm
index 2b014deda..f22c01d95 100644
--- a/Bugzilla/Config/Attachment.pm
+++ b/Bugzilla/Config/Attachment.pm
@@ -68,7 +68,7 @@ sub get_param_list {
name => 'maxattachmentsize',
type => 't',
default => '1000',
- checker => \&check_numeric
+ checker => \&check_maxattachmentsize
},
# The maximum size (in bytes) for patches and non-patch attachments.
diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm
index b6aa1a108..b285b3bc9 100644
--- a/Bugzilla/Config/Common.pm
+++ b/Bugzilla/Config/Common.pm
@@ -50,6 +50,7 @@ use base qw(Exporter);
check_netmask check_user_verify_class check_image_converter
check_mail_delivery_method check_notification check_utf8
check_bug_status check_smtp_auth check_theschwartz_available
+ check_maxattachmentsize
);
# Checking functions for the various values
@@ -313,6 +314,24 @@ sub check_mail_delivery_method {
return "";
}
+sub check_maxattachmentsize {
+ my $check = check_numeric(@_);
+ return $check if $check;
+ my $size = shift;
+ my $dbh = Bugzilla->dbh;
+ if ($dbh->isa('Bugzilla::DB::Mysql')) {
+ my (undef, $max_packet) = $dbh->selectrow_array(
+ q{SHOW VARIABLES LIKE 'max\_allowed\_packet'});
+ my $byte_size = $size * 1024;
+ if ($max_packet < $byte_size) {
+ return "You asked for a maxattachmentsize of $byte_size bytes,"
+ . " but the max_allowed_packet setting in MySQL currently"
+ . " only allows packets up to $max_packet bytes";
+ }
+ }
+ return "";
+}
+
sub check_notification {
my $option = shift;
my @current_version =