• Yuchen Pei's avatar
    MDEV-31400 Simple plugin dependency resolution · 734583b0
    Yuchen Pei authored
    We introduce simple plugin dependency. A plugin init function may
    return HA_ERR_RETRY_INIT. If this happens during server startup when
    the server is trying to initialise all plugins, the failed plugins
    will be retried, until no more plugins succeed in initialisation or
    want to be retried.
    
    This will fix spider init bugs which is caused in part by its
    dependency on Aria for initialisation.
    
    The reason we need a new return code, instead of treating every
    failure as a request for retry, is that it may be impossible to clean
    up after a failed plugin initialisation. Take InnoDB for example, it
    has a global variable `buf_page_cleaner_is_active`, which may not
    satisfy an assertion during a second initialisation try, probably
    because InnoDB does not expect the initialisation to be called
    twice.
    734583b0
sql_plugin.cc 134 KB