• Amit Kapila's avatar
    Introduce vacuum errcontext to display additional information. · b61d161c
    Amit Kapila authored
    The additional information displayed will be block number for error
    occurring while processing heap and index name for error occurring
    while processing the index.
    
    This will help us in diagnosing the problems that occur during a vacuum.
    For ex. due to corruption (either caused by bad hardware or by some bug)
    if we get some error while vacuuming, it can help us identify the block
    in heap and or additional index information.
    
    It sets up an error context callback to display additional information
    with the error.  During different phases of vacuum (heap scan, heap
    vacuum, index vacuum, index clean up, heap truncate), we update the error
    context callback to display appropriate information.  We can extend it to
    a bit more granular level like adding the phases for FSM operations or for
    prefetching the blocks while truncating. However, I felt that it requires
    adding many more error callback function calls and can make the code a bit
    complex, so left those for now.
    
    Author: Justin Pryzby, with few changes by Amit Kapila
    Reviewed-by: Alvaro Herrera, Amit Kapila, Andres Freund, Michael Paquier
    and Sawada Masahiko
    Discussion: https://www.postgresql.org/message-id/20191120210600.GC30362@telsasoft.com
    b61d161c
vacuumlazy.c 112 KB