Skip to content
  • Arun Kuruvila's avatar
    65ffeb9b
    Bug#28379285: CRASHING IN QUICK_ROR_INTERSECT_SELECT::GET_NEXT()! · 65ffeb9b
    Arun Kuruvila authored
    Description: Server may exit during SELECT on a MERGE table if
    concurrent INSERT SELECT statements are executing in some
    sequence.
    
    Analysis: Optimizer creates a clone of MRG_INFO structure of
    the merge table for index merge optimization during the
    execution of SELECT statement on a MERGE table. Due to
    concurrent INSERT SELECT statements, there arises a scenario
    where the file_offset values maintained by the two MRG_INFO
    structures becomes inconsistent. This in turn results in a
    read from an incorrect position on the child table which
    later results in the server crash.
    
    Fix:- Table's main MRG_INFO structure is also updated with
    the help of the function, 'info()' just after the clone for
    MRG_INFO is created [inside 'ha_myisammrg::open()']. This
    will make sure that all the values maintained by both the
    structures will be in sync during the execution.
    65ffeb9b
    Bug#28379285: CRASHING IN QUICK_ROR_INTERSECT_SELECT::GET_NEXT()!
    Arun Kuruvila authored
    Description: Server may exit during SELECT on a MERGE table if
    concurrent INSERT SELECT statements are executing in some
    sequence.
    
    Analysis: Optimizer creates a clone of MRG_INFO structure of
    the merge table for index merge optimization during the
    execution of SELECT statement on a MERGE table. Due to
    concurrent INSERT SELECT statements, there arises a scenario
    where the file_offset values maintained by the two MRG_INFO
    structures becomes inconsistent. This in turn results in a
    read from an incorrect position on the child table which
    later results in the server crash.
    
    Fix:- Table's main MRG_INFO structure is also updated with
    the help of the function, 'info()' just after the clone for
    MRG_INFO is created [inside 'ha_myisammrg::open()']. This
    will make sure that all the values maintained by both the
    structures will be in sync during the execution.
Loading