[Bast-commits] r5440 - in DBIx-Class/0.08: branches/stopgap/lib/DBIx/Class/Manual branches/stopgap/t trunk/t

ribasushi at dev.catalyst.perl.org ribasushi at dev.catalyst.perl.org
Tue Feb 10 11:19:21 GMT 2009


Author: ribasushi
Date: 2009-02-10 11:19:20 +0000 (Tue, 10 Feb 2009)
New Revision: 5440

Modified:
   DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Intro.pod
   DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Troubleshooting.pod
   DBIx-Class/0.08/branches/stopgap/t/99rh_perl_perf_bug.t
   DBIx-Class/0.08/trunk/t/99rh_perl_perf_bug.t
Log:
More rh-bug related stuff:
- Improve message emmitted when confronted with a buggy system
- Port forgotten pieces from trunk to stopgap

Modified: DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Intro.pod
===================================================================
--- DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Intro.pod	2009-02-10 10:33:21 UTC (rev 5439)
+++ DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Intro.pod	2009-02-10 11:19:20 UTC (rev 5440)
@@ -377,11 +377,9 @@
 
 =head2 Problems on RHEL5/CentOS5
 
-There is a problem with slow performance of certain DBIx::Class operations in
-perl-5.8.8-10 and later on RedHat and related systems, due to a bad backport of
-a "use overload" related bug.  The problem is in the Perl binary itself, not in
-DBIx::Class.  If your system has this problem, you will see a warning on
-startup, with some options as to what to do about it.
+There used to be an issue with the system perl on Red Hat Enterprise
+Linux 5, some versions of Fedora and derived systems. Further
+information on this can be found in L<DBIx::Class::Manual::Troubleshooting>
 
 =head1 SEE ALSO
 

Modified: DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Troubleshooting.pod
===================================================================
--- DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Troubleshooting.pod	2009-02-10 10:33:21 UTC (rev 5439)
+++ DBIx-Class/0.08/branches/stopgap/lib/DBIx/Class/Manual/Troubleshooting.pod	2009-02-10 11:19:20 UTC (rev 5440)
@@ -55,5 +55,38 @@
 specify a fully qualified namespace: C< package MySchema::MyTable; >
 for example.
 
+=head2 Perl Performance Issues on Red Hat Systems
+
+There is a problem with slow performance of certain DBIx::Class
+operations using the system perl on some Fedora and Red Hat Enterprise
+Linux system (as well as their derivative distributions such as Centos,
+White Box and Scientific Linux).
+
+Distributions affected include Fedora 5 through to Fedora 8 and RHEL5
+upto and including RHEL5 Update 2. Fedora 9 (which uses perl 5.10) has
+never been affected - this is purely a perl 5.8.8 issue.
+
+As of September 2008 the following packages are known to be fixed and so
+free of this performance issue (this means all Fedora and RHEL5 systems
+with full current updates will not be subject to this problem):-
+
+  Fedora 8     - perl-5.8.8-41.fc8
+  RHEL5        - perl-5.8.8-15.el5_2.1
+
+The issue is due to perl doing an exhaustive search of blessed objects
+under certain circumstances.  The problem shows up as performance
+degredation exponential to the number of L<DBIx::Class> row objects in
+memory, so can be unoticeable with certain data sets, but with huge
+performance impacts on other datasets.
+
+A pair of tests for susceptability to the issue, and performance effects
+of the bless/overload problem can be found in the L<DBIx::Class> test
+suite in the file C<t/99rh_perl_perf_bug.t>
+
+Further information on this issue can be found in
+L<https://bugzilla.redhat.com/show_bug.cgi?id=379791>,
+L<https://bugzilla.redhat.com/show_bug.cgi?id=460308> and
+L<http://rhn.redhat.com/errata/RHBA-2008-0876.html>
+
 =cut
 

Modified: DBIx-Class/0.08/branches/stopgap/t/99rh_perl_perf_bug.t
===================================================================
--- DBIx-Class/0.08/branches/stopgap/t/99rh_perl_perf_bug.t	2009-02-10 10:33:21 UTC (rev 5439)
+++ DBIx-Class/0.08/branches/stopgap/t/99rh_perl_perf_bug.t	2009-02-10 11:19:20 UTC (rev 5440)
@@ -61,11 +61,15 @@
 
 ok( ( $ratio < 2 ), 'Overload/bless performance acceptable' )
   || diag(
+    "\n",
     "This perl has a substantial slow down when handling large numbers\n",
     "of blessed/overloaded objects.  This can severely adversely affect\n",
     "the performance of DBIx::Class programs.  Please read the section\n",
     "in the Troubleshooting POD documentation entitled\n",
     "'Perl Performance Issues on Red Hat Systems'\n",
+    "As this is an extremely serious condition, the only way to skip\n",
+    "over this test is to --force the installation, or to edit the test\n",
+    "file " . __FILE__ . "\n",
   );
 
 # We will only check for the difference in bless handling (whether the
@@ -106,8 +110,12 @@
     ok( !_possibly_has_bad_overload_performance(),
         'Checking whether bless applies to reference not object' )
       || diag(
+        "\n",
         "This perl is probably derived from a buggy Red Hat perl build\n",
         "Please read the section in the Troubleshooting POD documentation\n",
         "entitled 'Perl Performance Issues on Red Hat Systems'\n",
+        "As this is an extremely serious condition, the only way to skip\n",
+        "over this test is to --force the installation, or to edit the test\n",
+        "file " . __FILE__ . "\n",
       );
 }

Modified: DBIx-Class/0.08/trunk/t/99rh_perl_perf_bug.t
===================================================================
--- DBIx-Class/0.08/trunk/t/99rh_perl_perf_bug.t	2009-02-10 10:33:21 UTC (rev 5439)
+++ DBIx-Class/0.08/trunk/t/99rh_perl_perf_bug.t	2009-02-10 11:19:20 UTC (rev 5440)
@@ -61,11 +61,15 @@
 
 ok( ( $ratio < 2 ), 'Overload/bless performance acceptable' )
   || diag(
+    "\n",
     "This perl has a substantial slow down when handling large numbers\n",
     "of blessed/overloaded objects.  This can severely adversely affect\n",
     "the performance of DBIx::Class programs.  Please read the section\n",
     "in the Troubleshooting POD documentation entitled\n",
     "'Perl Performance Issues on Red Hat Systems'\n",
+    "As this is an extremely serious condition, the only way to skip\n",
+    "over this test is to --force the installation, or to edit the test\n",
+    "file " . __FILE__ . "\n",
   );
 
 # We will only check for the difference in bless handling (whether the
@@ -106,8 +110,12 @@
     ok( !_possibly_has_bad_overload_performance(),
         'Checking whether bless applies to reference not object' )
       || diag(
+        "\n",
         "This perl is probably derived from a buggy Red Hat perl build\n",
         "Please read the section in the Troubleshooting POD documentation\n",
         "entitled 'Perl Performance Issues on Red Hat Systems'\n",
+        "As this is an extremely serious condition, the only way to skip\n",
+        "over this test is to --force the installation, or to edit the test\n",
+        "file " . __FILE__ . "\n",
       );
 }




More information about the Bast-commits mailing list