• Marko Mäkelä's avatar
    Bug#12560151 61132: infinite loop in buf_page_get_gen() when handling · ec2389dc
    Marko Mäkelä authored
    compressed pages
    
    After loading a compressed-only page in buf_page_get_gen() we allocate a new
    block for decompression. The problem is that the compressed page is neither
    buffer-fixed nor I/O-fixed by the time we call buf_LRU_get_free_block(),
    so it may end up being evicted and returned back as a new block.
    
    buf_page_get_gen(): Temporarily buffer-fix the compressed-only block
    while allocating memory for an uncompressed page frame.
    This should prevent this form of the infinite loop, which is more likely
    with a small innodb_buffer_pool_size.
    
    rb#2511 approved by Jimmy Yang, Sunny Bains
    ec2389dc
buf0buf.c 102 KB