1. 14 May, 2018 5 commits
  2. 12 May, 2018 27 commits
  3. 11 May, 2018 8 commits
    • Marko Mäkelä's avatar
    • Sachin Agarwal's avatar
      Bug #23593654 CRASH IN BUF_BLOCK_FROM_AHI WHEN LARGE PAGES AND AHI ARE ENABLED · 0da98472
      Sachin Agarwal authored
      Problem:
      
      Fix for Bug #21348684 (#Rb9581) introduced a conditional debug execute
      'buf_pool_resize_chunk_null', which causes new chunks memory for 2nd
      buffer pool instance is freed.
      
      Buffer pool resize function removes all old chunks entry from
      'buf_chunk_map_reg' and add new chunks entry into it. But when
      'buf_pool_resize_chunk_null' is set true, 2nd buffer pool
      instance's chunk entries are not added into 'buf_chunk_map_reg'.
      When purge thread tries to access that buffer chunk, it leads to
      debug assertion.
      
      Fix:
      
      Added old chunk entries into 'buf_chunk_map_reg' for 2nd buffer pool
      instance when 'buf_pool_resize_chunk_null' debug condition is set to true.
      
      Reviewed by: Jimmy <Jimmy.Yang@oracle.com>
      RB: 18664
      0da98472
    • Aakanksha Verma's avatar
      FOLLOW-UP FIX FOR BUG#27141613 · 4c7ea34e
      Aakanksha Verma authored
      PROBLEM
      
      Issue found during ntest run is a regression of  Bug #27141613. The
      issue is basically when index is being freed due to an error during its
      creation,when the index isn't added to dictionary cache its field
      columns are not set, the derefrencing of null col pointer during the
      clean of index from the virtual column's leads to a crash.
      
      NOTE: Also test i_innodb.virtual_debug was failing on 32k page size and
      above for the newly added scenario. Fixed that.
      
      FIX
      
      Added a check that if only the index is cached , the virtual index
      freeing from the virtual cols index list is performed.
      
      Reviewed by: Satya Bodapati<satya.bodapati@oracle.com>
      RB: 18670
      4c7ea34e
    • Aakanksha Verma's avatar
      Bug #27141613 ASSERTION: TRX0REC.CC:319:COL->IS_VIRTUAL() / CRASH IN TRX_UNDO_READ_V_COLS · 279f992b
      Aakanksha Verma authored
      PROBLEM
      =======
      When add of virtual index fails with DB_TOO_BIG_RECORD , the virtual
      index being freed isn't removed from the list of indexes a virtual
      column(which is part of the index). This while the undo log is read
      could fetch a wrong value during rollback and cause the assertion
      reported in the bug particularly.
      
      FIX
      ===
      Added a function that is called when the virtual index being freed would
      allow the index be removed from the index list of virtual column which
      was a field of that index.
      
      Reviwed By: Jimmy Yang<Jimmy.Yang@oracle.com>
      RB: 18528
      279f992b
    • Marko Mäkelä's avatar
      Adjust the test case for MariaDB · c88ac735
      Marko Mäkelä authored
      c88ac735
    • Aditya A's avatar
      Bug #27304661 MYSQL CRASH DOING SYNC INDEX ] [FATAL] INNODB: SEMAPHORE WAIT HAS LASTED > 600 · 280879eb
      Aditya A authored
      PROBLEM
      -------
      
      Whenever an fts table is created it registers itself in a queue which
      is operated by a background thread whose job is to optimize the
      fts tables in background. Additionally we place these fts tables in
      non-LRU list so that they cannot be evicted from cache. But in the
      scenario when a node is brought up which is already having fts
      tables ,we first try to load the fts tables in dictionary ,but we skip
      the part where it is added in background queue and in non-LRU list because
      the background thread is not yet created,so these tables are loaded
      but they can be evicted from the cache. Now coming to the deadlock scenario
      
      1. A Server background thread is trying to evict a table from the cache
          because the cache is full,so it scans the LRU list for the tables it can
          evict.It finds the fts table (because of the reason explained above)
          can be evicted and it takes the dict_sys->mutex (this is a system wide mutex)
          submits a request to  the background thread to remove this table from queue
          and waits it to be completed.
      
      2.  In the mean time fts_optimize_thread() is processing another job
          in the queue and needs dict_sys->mutex for a small amount of time,
          but it cannot get it because it is blocked by the first background thread.
      
      So Thread 1 is waiting for its job to be completed by Thread 2,whereas Thread 2
      is waiting for dict_sys->mutex held by thread 1 ,causing the deadlock.
      
      FIX
      280879eb
    • Sachin Agarwal's avatar
      Bug #26805833 INNODB COMPLAINS OF SYNTAX ERROR, BUT DOES NOT SAY WHICH OPTION · b7e333f9
      Sachin Agarwal authored
      Problem:
      
      when incorrect value is assigned to innodb_data_file_path or
      innodb_temp_data_file_path parameter, Innodb returns error and logs error
      message in mysqlds.err file but there is no information in error message about
      the parameter which causes Innodb initialization is failed.
      
      Fix:
      
      Added error message with parameter name and value, which causes Innodb
      initialization is failed.
      
      Reviewed by: Jimmy <Jimmy.Yang@oracle.com>
      RB: 18206
      b7e333f9
    • Sergey Vojtovich's avatar
      MDEV-15592 - Column COMPRESSED should select a 'high order' datatype · c9829242
      Sergey Vojtovich authored
      Compressed blob columns didn't accept data at their capacity. E.g. storing
      255 bytes to TINYBLOB results in "Data too long" error.
      
      Now it is allowed assuming compression method was able to produce shorter
      string (so that both metadata and compressed data fits blob) and
      column_compression_threshold is lower than blob.
      
      If no compression was performed, we still have to reserve additional byte
      for metadata and thus we perform normal data truncation and return it's
      status.
      c9829242