List:Maria Storage Engine« Previous MessageNext Message »
From:Guilhem Bichot Date:November 20 2008 2:11pm
Subject:bzr commit into MySQL/Maria:mysql-maria branch (guilhem:2700)
View as plain text  
#At bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-maria/ based on revid:sanja@stripped

 2700 Guilhem Bichot	2008-11-20
      During Maria's checkpoint, use the proper mutex to read transaction's short_id
modified:
  storage/maria/trnman.c

per-file messages:
  storage/maria/trnman.c
    During Maria's checkpoint, we walk the list of active transactions; in this list we may find a transaction with a short_id of 0 which means "uninitialized" (is being created right now) and want to ignore this transaction. Such short_id is set under trn->state_lock, so use this mutex to reliably read short_id during checkpoint.
=== modified file 'storage/maria/trnman.c'
--- a/storage/maria/trnman.c	2008-11-05 21:17:09 +0000
+++ b/storage/maria/trnman.c	2008-11-20 14:11:00 +0000
@@ -682,7 +682,10 @@ my_bool trnman_collect_transactions(LEX_
     */
     uint sid;
     LSN rec_lsn, undo_lsn, first_undo_lsn;
-    if ((sid= trn->short_id) == 0)
+    pthread_mutex_lock(&trn->state_lock);
+    sid= trn->short_id;
+    pthread_mutex_unlock(&trn->state_lock);
+    if (sid == 0)
     {
       /*
         Not even inited, has done nothing. Or it is the

Thread
bzr commit into MySQL/Maria:mysql-maria branch (guilhem:2700) Guilhem Bichot20 Nov