1. 09 Jan, 2007 2 commits
    • kroki/tomash@moonlight.home's avatar
      Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-4.0 · e1ea142c
      kroki/tomash@moonlight.home authored
      into  moonlight.home:/home/tomash/src/mysql_ab/mysql-4.0-bug23443
      e1ea142c
    • kroki/tomash@moonlight.home's avatar
      BUG#23443: user-defined variables can consume too much memory in the · 5b4d9d87
      kroki/tomash@moonlight.home authored
                 server
      
      The problem was that when memory was exhausted HEAP engine could crash
      (GROUP BY uses HEAP TABLE).  Alternatively, if SET was used, it could
      report an error "You may only use constant expressions with SET" instead
      of "Out of memory (Needed NNNNNN bytes)".
      
      The solution is:
       - pass MY_WME to (some) calls to my_malloc() to get correct message.
       - fix heap_write() so that the first key is skipped during cleanup
         on ENOMEM because it wasn't inserted and doesn't have to be
         deleted.
      
      No test case is provided because we can't test out-of-memory behaviour
      in our current test framework.
      5b4d9d87
  2. 03 Jan, 2007 1 commit
  3. 07 Nov, 2006 3 commits
  4. 06 Nov, 2006 2 commits
  5. 17 Oct, 2006 1 commit
  6. 13 Oct, 2006 1 commit
  7. 02 Oct, 2006 1 commit
  8. 29 Sep, 2006 1 commit
  9. 28 Sep, 2006 1 commit
  10. 27 Sep, 2006 1 commit
  11. 23 Sep, 2006 1 commit
  12. 22 Sep, 2006 3 commits
  13. 18 Sep, 2006 1 commit
    • kroki/tomash@moonlight.intranet's avatar
      BUG#9678: Client library hangs after network communication failure · 92610664
      kroki/tomash@moonlight.intranet authored
                (back-port to 4.0)
      
      Socket timeouts in client library were used only on Windows.
      Additionally, in 4.0 write operations erroneously set read timeout.
      
      The solution is to use socket timeouts in client library on all
      systems were they are supported, and to differentiate between read
      and write timeouts.
      
      No test case is provided because it is impossible to simulate network
      failure in current test suite.
      92610664
  14. 15 Sep, 2006 1 commit
  15. 07 Sep, 2006 1 commit
  16. 06 Sep, 2006 1 commit
  17. 31 Aug, 2006 1 commit
  18. 30 Aug, 2006 1 commit
    • cmiller@zippy.cornsilk.net's avatar
      Bug#4053: too many of "error 1236: 'binlog truncated in the middle of \ · 2c356ec7
      cmiller@zippy.cornsilk.net authored
      	event' from master"
      
      Since there is no repeatable test case, and this is obviously wrong, this is
      the most conservative change that might possibly work.  
      
      The syscall  read()  wasn't checked for a negative return value for an
      interrupted read.  The kernel  sys_read()  returns -EINTR, and the "library" 
      layer maps that to return value of -1 and sets  errno  to EINTR.  It's 
      impossible (on Linux) for  read()  to set errno EINTR without the return 
      value being -1 .
      
      So, if we're checking for EINTR behavior, we should not require that the
      return value be zero.
      2c356ec7
  19. 29 Aug, 2006 1 commit
  20. 10 Aug, 2006 1 commit
  21. 29 Jul, 2006 1 commit
  22. 28 Jul, 2006 3 commits
  23. 26 Jul, 2006 1 commit
  24. 24 Jul, 2006 1 commit
  25. 21 Jul, 2006 1 commit
  26. 08 Jul, 2006 1 commit
  27. 07 Jul, 2006 2 commits
  28. 05 Jul, 2006 1 commit
  29. 01 Jul, 2006 1 commit
    • cmiller@zippy.(none)'s avatar
      Bug#19006: 4.0 valgrind problems (in test func_str) · 5039184e
      cmiller@zippy.(none) authored
      On exactly-sized Strings, the String::c_ptr() function peeked beyond the
      end of the buffer, possibly into unititialized space to see whether the 
      buffer was NUL-terminated.
      
      In a place that did peek improperly, we now use a c_ptr_safe() function, 
      which doesn't peek where it shouldn't.
      5039184e
  30. 28 Jun, 2006 1 commit
    • ingo@mysql.com's avatar
      Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert" · 99ad23ec
      ingo@mysql.com authored
      It was possible that fetching a record by an exact key value 
      (including the record pointer) could return a record with a 
      different key value. This happened only if a concurrent insert 
      added a record with the searched key value after the fetching 
      statement locked the table for read.
      
      The search succeded on the key value, but the record was
      rejected as it was past the file length that was remembered
      at start of the fetching statement. With other words it was 
      rejected as being a concurrently inserted record.
      
      The action to recover from this problem was to fetch the 
      record that is pointed at by the next key of the index. 
      This was repeated until a record below the file length was 
      found.
      
      I do now avoid this loop if an exact match was searched. 
      If this match is beyond the file length, it is now treated 
      as "key not found". There cannot be another key with the 
      same record pointer.
      99ad23ec
  31. 27 Jun, 2006 1 commit