Skip to content
  • Satya Bodapati's avatar
    c510eaa1
    Bug#21959479 - TRUNCATE TABLE WITH FULLTEXT INDEX LEADS TO CORRUPTION IF SERVER CRASHES · c510eaa1
    Satya Bodapati authored
    
    
    Problem:
    -------
    If server is killed during truncate on a table with FTS indexes, the
    subsequent startup of server will fail due to purge finding a freed
    index page.
    
    If truncate crashes after freeing index pages, we generally roll-forward
    and complete the truncate.
    
    When there is FTS index on table, we don't do such roll-forward and this can
    cause many issues.
    
    In this bug, purge immediately opens the crashed table and finds freed
    index pages.
    
    In fix for Bug#21529012, we make 'entire' table as corrupted but this is
    not sufficient. This marking of entire table as corrupted happens only
    when the table is opened.
    
    Purge won the race here, there is no marking of table as corrupted (yet)
    and so it asserts.
    
    Fix:
    ----
    Enable the truncate crash log even where is FTS index on table. So we
    now roll-forward the truncate on startup.
    
    Also, since we do not re-create FTS indexes as part of truncate fix-up
    action at startup. So we mark table as corrupt as part of
    truncate fix-up action.
    
    Reviewed-by: default avatarJimmy Yang <jimmy.yang@oracle.com>
    RB: 10569
    c510eaa1
    Bug#21959479 - TRUNCATE TABLE WITH FULLTEXT INDEX LEADS TO CORRUPTION IF SERVER CRASHES
    Satya Bodapati authored
    
    
    Problem:
    -------
    If server is killed during truncate on a table with FTS indexes, the
    subsequent startup of server will fail due to purge finding a freed
    index page.
    
    If truncate crashes after freeing index pages, we generally roll-forward
    and complete the truncate.
    
    When there is FTS index on table, we don't do such roll-forward and this can
    cause many issues.
    
    In this bug, purge immediately opens the crashed table and finds freed
    index pages.
    
    In fix for Bug#21529012, we make 'entire' table as corrupted but this is
    not sufficient. This marking of entire table as corrupted happens only
    when the table is opened.
    
    Purge won the race here, there is no marking of table as corrupted (yet)
    and so it asserts.
    
    Fix:
    ----
    Enable the truncate crash log even where is FTS index on table. So we
    now roll-forward the truncate on startup.
    
    Also, since we do not re-create FTS indexes as part of truncate fix-up
    action at startup. So we mark table as corrupt as part of
    truncate fix-up action.
    
    Reviewed-by: default avatarJimmy Yang <jimmy.yang@oracle.com>
    RB: 10569
Loading