Skip to content
  • Annamalai Gurusami's avatar
    a17be696
    Bug #17320977 FAILING ASSERTION: LOCK_REC_HAS_TO_WAIT_IN_QUEUE(LOCK) · a17be696
    Annamalai Gurusami authored
    Problem #1:
    
    The function row_vers_impl_x_locked_low() wrongly identifies a transaction to
    hold an implicit x lock on a secondary index, which is orphaned.  Orphaned
    means that the secondary index is delete marked and purgeable and does not have
    its associated clustered index record.  
    
    Solution #1:
    
    Added an extra check in row_vers_impl_x_locked_low() to detect this situation
    and confirm that the transaction does not hold an implicit x lock on the
    record.
    
    Problem #2:
    
    The active transaction was removed from trx_sys->rw_trx_set prematurely.
    
    Solution #2:
    
    The trx was removed from trx_sys->rw_trx_set only after the trx state change
    and release of all trx locks.
    
    rb#4291 approved by Marko, Yasufumi, Sunny.
    a17be696
    Bug #17320977 FAILING ASSERTION: LOCK_REC_HAS_TO_WAIT_IN_QUEUE(LOCK)
    Annamalai Gurusami authored
    Problem #1:
    
    The function row_vers_impl_x_locked_low() wrongly identifies a transaction to
    hold an implicit x lock on a secondary index, which is orphaned.  Orphaned
    means that the secondary index is delete marked and purgeable and does not have
    its associated clustered index record.  
    
    Solution #1:
    
    Added an extra check in row_vers_impl_x_locked_low() to detect this situation
    and confirm that the transaction does not hold an implicit x lock on the
    record.
    
    Problem #2:
    
    The active transaction was removed from trx_sys->rw_trx_set prematurely.
    
    Solution #2:
    
    The trx was removed from trx_sys->rw_trx_set only after the trx state change
    and release of all trx locks.
    
    rb#4291 approved by Marko, Yasufumi, Sunny.
Loading