I have found that if MySQL tmpdir points to a symlink, recap fails to retrieve the InnoDB status report.
This is because it compares the path of InnoDB temporary files with the tmpdir value but fails because the paths contain the destination folder:
# mysql -Bse "SHOW VARIABLES LIKE 'tmpdir';"
tmpdir /var/lib/mysqltmp
# ll /var/lib/mysqltmp
lrwxrwxrwx. 1 root root 14 Dec 24 11:39 /var/lib/mysqltmp -> /data/mysqltmp
# ll /proc/7305/fd | grep mysqltmp
lrwx------. 1 mysql mysql 64 Dec 24 11:44 11 -> /data/mysqltmp/ibywyLPT (deleted)
lrwx------. 1 mysql mysql 64 Dec 24 11:44 4 -> /data/mysqltmp/ibdgvlds (deleted)
lrwx------. 1 mysql mysql 64 Dec 24 11:44 5 -> /data/mysqltmp/ib0yHSjl (deleted)
lrwx------. 1 mysql mysql 64 Dec 24 11:44 6 -> /data/mysqltmp/ibphpqqe (deleted)
lrwx------. 1 mysql mysql 64 Dec 24 11:44 7 -> /data/mysqltmp/ibntvYF0 (deleted)
I have found that if MySQL tmpdir points to a symlink, recap fails to retrieve the InnoDB status report. This is because it compares the path of InnoDB temporary files with the tmpdir value but fails because the paths contain the destination folder:
I'm going to submit a PR to address this.