1. 24 Jun, 2010 1 commit
  2. 15 Jun, 2010 1 commit
  3. 14 Jun, 2010 2 commits
  4. 10 Jun, 2010 4 commits
  5. 09 Jun, 2010 2 commits
    • Sergey Glukhov's avatar
      Bug#38999 valgrind warnings for update statement in function compare_record() · 32b306c4
      Sergey Glukhov authored
      (InnoDB plugin branch)
      
      mysql-test/suite/innodb_plugin/r/innodb_mysql.result:
        test case
      mysql-test/suite/innodb_plugin/t/innodb_mysql.test:
        test case
      storage/innodb_plugin/row/row0sel.c:
        init null bytes with default values as they might be
        left uninitialized in some cases and these uninited bytes
        might be copied into mysql record buffer that leads to
        valgrind warnings on next use of the buffer.
      32b306c4
    • Sergey Glukhov's avatar
      Bug#38999 valgrind warnings for update statement in function compare_record() · 36f0e016
      Sergey Glukhov authored
      Valgrind warning happpens because of uninitialized null bytes.
      In row_sel_push_cache_row_for_mysql() function we fill fetch cache
      with necessary field values, row_sel_store_mysql_rec() is called
      for this and leaves null bytes untouched.
      Later row_sel_pop_cached_row_for_mysql() rewrites table record
      buffer with uninited null bytes. We can see the problem from the
      test case:
      At 'SELECT...' we call row_sel_push...->row_sel_store...->row_sel_pop_cached...
      chain which rewrites table->record[0] buffer with uninitialized null bytes.
      When we call 'UPDATE...' statement, compare_record uses this buffer and
      valgrind warning occurs.
      The fix is to init null bytes with default values.
      
      
      mysql-test/suite/innodb/r/innodb_mysql.result:
        test case
      mysql-test/suite/innodb/t/innodb_mysql.test:
        test case
      mysql-test/t/ps_3innodb.test:
        enable valgrind testing
      storage/innobase/row/row0sel.c:
        init null bytes with default values as they might be
        left uninitialized in some cases and these uninited bytes
        might be copied into mysql record buffer that leads to
        valgrind warnings on next use of the buffer.
      36f0e016
  6. 08 Jun, 2010 4 commits
  7. 03 Jun, 2010 6 commits
  8. 02 Jun, 2010 6 commits
    • Marko Mäkelä's avatar
      89de0075
    • Marko Mäkelä's avatar
      Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record · 8c32f262
      Marko Mäkelä authored
      In semi-consistent read, only unlock freshly locked non-matching records.
      
      lock_rec_lock_fast(): Return LOCK_REC_SUCCESS,
      LOCK_REC_SUCCESS_CREATED, or LOCK_REC_FAIL instead of TRUE/FALSE.
      
      enum db_err: Add DB_SUCCESS_LOCKED_REC for indicating a successful
      operation where a record lock was created.
      
      lock_sec_rec_read_check_and_lock(),
      lock_clust_rec_read_check_and_lock(), lock_rec_enqueue_waiting(),
      lock_rec_lock_slow(), lock_rec_lock(), row_ins_set_shared_rec_lock(),
      row_ins_set_exclusive_rec_lock(), sel_set_rec_lock(),
      row_sel_get_clust_rec_for_mysql(): Return DB_SUCCESS_LOCKED_REC if a
      new record lock was created. Adjust callers.
      
      row_unlock_for_mysql(): Correct the function documentation.
      
      row_prebuilt_t::new_rec_locks: Correct the documentation.
      8c32f262
    • Marko Mäkelä's avatar
      Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record · 47d993b2
      Marko Mäkelä authored
      In semi-consistent read, only unlock freshly locked non-matching records.
      
      Define DB_SUCCESS_LOCKED_REC for indicating a successful operation
      where a record lock was created.
      
      lock_rec_lock_fast(): Return LOCK_REC_SUCCESS,
      LOCK_REC_SUCCESS_CREATED, or LOCK_REC_FAIL instead of TRUE/FALSE.
      
      lock_sec_rec_read_check_and_lock(),
      lock_clust_rec_read_check_and_lock(), lock_rec_enqueue_waiting(),
      lock_rec_lock_slow(), lock_rec_lock(), row_ins_set_shared_rec_lock(),
      row_ins_set_exclusive_rec_lock(), sel_set_rec_lock(),
      row_sel_get_clust_rec_for_mysql(): Return DB_SUCCESS_LOCKED_REC if a
      new record lock was created. Adjust callers.
      
      row_unlock_for_mysql(): Correct the function documentation.
      
      row_prebuilt_t::new_rec_locks: Correct the documentation.
      47d993b2
    • Marko Mäkelä's avatar
    • Georgi Kodinov's avatar
      merge · b6cc2eb0
      Georgi Kodinov authored
      b6cc2eb0
    • Georgi Kodinov's avatar
      changed the tree name · b85ca414
      Georgi Kodinov authored
      b85ca414
  9. 01 Jun, 2010 12 commits
  10. 31 May, 2010 2 commits
    • Vasil Dimov's avatar
      Merge a change from mysql-trunk-innodb: · bc837aeb
      Vasil Dimov authored
        ------------------------------------------------------------
        revno: 3127
        revision-id: vasil.dimov@oracle.com-20100531152341-x2d4hma644icamh1
        parent: vasil.dimov@oracle.com-20100531105923-kpjwl4rbgfpfj13c
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-05-31 18:23:41 +0300
        message:
          Fix Bug #53947 InnoDB: Assertion failure in thread 4224 in file .\sync\sync0sync.c line 324
          
          Destroy the rw-lock object before freeing the memory it is occupying.
          If we do not do this, then the mutex that is contained in the rw-lock
          object btr_search_latch_temp->mutex gets "freed" and subsequently
          mutex_free() from sync_close() hits a mutex whose memory has been
          freed and crashes.
          
          Approved by:	Heikki (via IRC)
          Discussed with:	Calvin
      bc837aeb
    • Sergey Glukhov's avatar
      Bug#53942 valgrind warnings with timestamp() function and incomplete datetime values · 67f06ebb
      Sergey Glukhov authored
      Field_time::get_date method does not initialize MYSQL_TIME::time_type field.
      The fix is to init this field.
      
      
      mysql-test/r/type_time.result:
        test case
      mysql-test/t/type_time.test:
        test case
      sql/field.cc:
        --use Field_time::get_time in Field_time::get_date
        --removed duplicated code in Field_time::get_date method
      67f06ebb