List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:August 27 2012 7:02am
Subject:bzr push into mysql-trunk branch (andrei.elkin:4334 to 4335)
View as plain text  
 4335 Andrei Elkin	2012-08-27 [merge]
      merging from 5.6.

    modified:
      sql/rpl_rli_pdb.cc
 4334 Aditya A	2012-08-27
      BUG#11761646 - INNODB SHOULD RETRY ON FAILED READ OR WRITE, 
                     NOT IMMEDIATELY PANIC
      Related:
      http://bugs.mysql.com/bug.php?id=54430
      (innodb should retry partial reads/writes where errno was 0)
      
      Summary
      -------
      In the Linux flavours the read and write system calls can 
      do partial reads and writes.
      
      The man page of read says that " The return value is 
      is smaller than the number of bytes requested; this 
      may happen for example because fewer bytes are actually
      available right now (maybe because we were close to
      end-of-file,or  because  we  are  reading from  a pipe, 
      or from a terminal), or because read() was interrupted by
      a signal."         
      
      
      The Fix
      -------
      Initially InnoDB was not handling the partial read and 
      writes.With this fix innodb tries NUM_RETRIES_ON_PARTIAL_IO 
      (which by default is equal to 10)times to read or write the
      partial data .The fix also takes care of partial read and
      write in case of Linux native API's where read and write 
      are asynyncronus operations.
      
      rb:1158 [approved by inaam.rana]

    modified:
      storage/innobase/os/os0file.cc
=== modified file 'sql/rpl_rli_pdb.cc'
--- a/sql/rpl_rli_pdb.cc	2012-08-24 16:12:06 +0000
+++ b/sql/rpl_rli_pdb.cc	2012-08-27 07:01:33 +0000
@@ -165,8 +165,8 @@ int Slave_worker::init_worker(Relay_log_
   
   wq_overrun_cnt= 0;
   // overrun level is symmetric to underrun (as underrun to the full queue)
-  overrun_level= (ulong) ((100 - rli->mts_worker_underrun_level) * jobs.size)
-    / 100.0;
+  overrun_level=
+    (ulong) (((100 - rli->mts_worker_underrun_level) * jobs.size) / 100.0);
 
   DBUG_RETURN(0);
 }

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (andrei.elkin:4334 to 4335) Andrei Elkin27 Aug