The function ha_innobase::check_if_supported_inplace_alter() refuses ALGORITHM=INPLACE operation if innodb_force_recovery has been specified. This is unnecessarily strict; only the values 4,5,6 will effectively corrupt the database and require any writes to be blocked. In MariaDB 10.2 we have the flag high_level_read_only that should be used instead.
Furthermore, the high_level_read_only flag should be set if newraw was specified for the InnoDB system tablespace.
I noticed this during the
MDEV-13134 code review.