• unknown's avatar
    Applied InnoDB snapshot innodb-5.0-ss2095 · a3dc40e2
    unknown authored
    Fixes the following bugs:
    
    - Bug #29560: InnoDB >= 5.0.30 hangs on adaptive hash rw-lock 'waiting for an X-lock'
    
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
    
    - Bug #32125: Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase
    
      When unknown find_flag is encountered in convert_search_mode_to_innobase()
      do not call assert(0); instead queue a MySQL error using my_error() and
      return the error code PAGE_CUR_UNSUPP. Change the functions that call
      convert_search_mode_to_innobase() to handle that error code by "canceling"
      execution and returning appropriate error code further upstream.
    
    
    innobase/include/db0err.h:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2091:
      branches/5.0:
       
      Merge r2088 from trunk:
       
      log for r2088:
      
      Fix Bug#32125 (http://bugs.mysql.com/32125)
      "Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
      
      When unknown find_flag is encountered in convert_search_mode_to_innobase()
      do not call assert(0); instead queue a MySQL error using my_error() and
      return the error code PAGE_CUR_UNSUPP. Change the functions that call
      convert_search_mode_to_innobase() to handle that error code by "canceling"
      execution and returning appropriate error code further upstream.
      
      Approved by:	Heikki
    innobase/include/os0sync.h:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/include/page0cur.h:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2091:
      branches/5.0:
       
      Merge r2088 from trunk:
       
      log for r2088:
      
      Fix Bug#32125 (http://bugs.mysql.com/32125)
      "Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
      
      When unknown find_flag is encountered in convert_search_mode_to_innobase()
      do not call assert(0); instead queue a MySQL error using my_error() and
      return the error code PAGE_CUR_UNSUPP. Change the functions that call
      convert_search_mode_to_innobase() to handle that error code by "canceling"
      execution and returning appropriate error code further upstream.
      
      Approved by:	Heikki
    innobase/include/sync0rw.h:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/include/sync0rw.ic:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/include/sync0sync.ic:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/os/os0sync.c:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/srv/srv0srv.c:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/sync/sync0arr.c:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/sync/sync0rw.c:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    innobase/sync/sync0sync.c:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2082:
      branches/5.0:  bug#29560
      
      Fixed a race condition in the rw_lock where an os_event_reset()
      can overwrite an earlier os_event_set() triggering an indefinite
      wait.
      NOTE: This fix for windows is different from that for other platforms.
      NOTE2: This bug is introduced in the scalability fix to the
      sync0arr which was applied to 5.0 only. Therefore, it need not be
      applied to the 5.1 tree. If we decide to port the scalability fix
      to 5.1 then this fix should be ported as well.
      
      Reviewed by: Heikki
    sql/ha_innodb.cc:
      Applied InnoDB snapshot innodb-5.0-ss2095
      
      Revision r2091:
      branches/5.0:
       
      Merge r2088 from trunk:
       
      log for r2088:
      
      Fix Bug#32125 (http://bugs.mysql.com/32125)
      "Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
      
      When unknown find_flag is encountered in convert_search_mode_to_innobase()
      do not call assert(0); instead queue a MySQL error using my_error() and
      return the error code PAGE_CUR_UNSUPP. Change the functions that call
      convert_search_mode_to_innobase() to handle that error code by "canceling"
      execution and returning appropriate error code further upstream.
      
      Approved by:	Heikki
      
      
      Revision r2095:
      branches/5.0: Merge r2093 from trunk:
      
      convert_search_mode_to_innobase(): Add the missing case label
      HA_READ_MBR_EQUAL that was forgotten in r2088.
    a3dc40e2
sync0rw.c 22.8 KB