Skip to content
  • Alexander Graf's avatar
    AIO deletion race fix · 79d5ca56
    Alexander Graf authored
    
    
    When deleting an fd event there is a chance the object doesn't get
    deleted, but only ->deleted set positive and deleted somewhere later.
    
    Now, if we create a handler for the fd again before the actual
    deletion occurs, we end up writing data into an object that has
    ->deleted set, which is obviously wrong.
    
    I see two ways to fix this:
    
    1. Don't return ->deleted objects in the search
    2. Unset ->deleted in the search
    
    This patch implements 1. which feels safer to do. It fixes AIO issues
    I've seen with curl, as libcurl unsets fd event listeners pretty
    frequently.
    
    Signed-off-by: default avatarAlexander Graf <alex@csgraf.de>
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    79d5ca56