[Tritonn-commit 30] [svn] [39] fixed bug as described:

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2007年 11月 12日 (月) 17:02:06 JST


Revision: 39
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=39
Author:   mir
Date:     2007-11-12 17:02:06 +0900 (Mon, 12 Nov 2007)

Log Message:
-----------
fixed bug as described:
  msyqld may get sig11 when disk tmp table is created by SELECT and
  in high concurrency and heaby load.

Modified Paths:
--------------
    mysql-5.0.45-tritonn-1.0.8/myisam/mi_delete_table.c

Modified: mysql-5.0.45-tritonn-1.0.8/myisam/mi_delete_table.c
===================================================================
--- mysql-5.0.45-tritonn-1.0.8/myisam/mi_delete_table.c	2007-11-06 02:10:10 UTC (rev 38)
+++ mysql-5.0.45-tritonn-1.0.8/myisam/mi_delete_table.c	2007-11-12 08:02:06 UTC (rev 39)
@@ -59,7 +59,8 @@
 
 #ifdef ENABLE_SENNA
   {
-    int i;
+    int i,j,keys;
+    int should_be_deleted[1024];
     MI_INFO *mi_info;
     MI_INFO cp_of_mi_info;
 
@@ -68,18 +69,17 @@
       SEN_LOG(sen_log_warning, "mi_delete_table => cannot get MI_INFO");
       DBUG_RETURN(my_errno);
     }
-
-    cp_of_mi_info = *mi_info;
+    keys = mi_info->s->base.keys;
+    for (i=0,j=0; i<keys; i++)
+    {
+      if (mi_info->s->keyinfo[i].senna) should_be_deleted[j++]=i;
+    }
     mi_close(mi_info);
-
-    for (i = 0; i < cp_of_mi_info.s->state.header.keys; i++)
+    for (i=0; i<j; i++)
     {
-      if (cp_of_mi_info.s->keyinfo[i].senna)
-      {
-        my_snprintf(from, FN_REFLEN, "%s.%03d", name, i);
-        SEN_LOG(sen_log_notice, "mi_delete_table => sen_index_remove: path=%s", from);
-        sen_index_remove(from);
-      }
+      my_snprintf(from, FN_REFLEN, "%s.%03d", name, should_be_deleted[i]);
+      SEN_LOG(sen_log_notice, "mi_delete_table => sen_index_remove: path=%s", from);
+      sen_index_remove(from);
     }
   }
 #endif /* ENABLE_SENNA */




Tritonn-commit メーリングリストの案内
Back to archive index