Actually FTS optimize thread is started not always. It is not started if srv_archive_recovery is off. See the following code in innobase_start_or_create_for_mysql():
recv_recovery_from_checkpoint_finish();
if (srv_apply_log_only) { goto skip_processes;
}
So this is "apply archived logs" specific bug because it does not skip fts initialization.
Actually FTS optimize thread is started not always. It is not started if srv_archive_ recovery is off. See the following code in innobase_ start_or_ create_ for_mysql( ):
if (srv_apply_ log_only) {
goto skip_processes;
}
So this is "apply archived logs" specific bug because it does not skip fts initialization.