Autofs failing to remount shares after they expire

While upgrading some hosts from Centos 7 to Rocky 8, autofs appears to be unable to remount mounts after they expire (using the same autofs config files).

Mount config:
auto.master:
/mounts/programs/prog_m /etc/auto.programs_prog_m tcp hard intr timeo=600 retrans=2 async --ghost

auto.programs_prog_m:
production -fstype=nfs4 /incoming fileserver:/ifs/incoming/aibs/prog_m
/omf fileserver:/ifs/programs/prog_m/production/omf
/oscope fileserver:/ifs/programs/prog_m/production/oscope
/learn fileserver:/ifs/programs/prog_m/production/learn
/dynamic fileserver:/ifs/programs/prog_m/production/dynamic
/info fileserver:/ifs/programs/prog_m/production/info
/var fileserver:/ifs/programs/prog_m/production/var
/task fileserver:/ifs/programs/prog_m/production/task
/psy fileserver:/ifs/programs/prog_m/production/psy
/u01 fileserver:/ifs/programs/prog_m/production/u01
/vip fileserver:/ifs/programs/prog_m/production/vip

While things work:
pwd; ls
/mount/programs/prog_m/production
dynamic incoming info learn omf oscope task psy u01 var vip

Break:
Same path, different contents:
pwd; ls
/mounts/programs/prog_m/production
info omf

Turning on logging at debug on autofs and I can see the mounts expiring:
May 30 11:06:12 automount[46872]: expire_proc_indirect: expire /mounts/programs/prog_m/production

May 30 11:06:15 automount[46872]: st_expire: state 1 path /mounts/programs/prog_m

May 30 11:06:16 automount[46872]: expire_proc_indirect: expire /mounts/programs/prog_m/production
May 30 11:06:16 automount[46872]: expire_proc_indirect: 2 remaining in /mounts/programs/prog_m
May 30 11:06:16 automount[46872]: expire_cleanup: got thid 140227066693376 path /mounts/programs/prog_m stat 2
May 30 11:06:16 automount[46872]: expire_cleanup: sigchld: exp 140227066693376 finished, switching from 2 to 1
May 30 11:06:16 automount[46872]: st_ready: st_ready(): state = 2 path /mounts/programs/prog_m

May 30 11:06:21 automount[46872]: expiring path /mounts/programs/prog_m/production
May 30 11:06:21 automount[46872]: umount_multi: path /mounts/programs/prog_m/production incl 1
May 30 11:06:21 automount[46872]: tree_mapent_umount_offset: umount offset /mounts/programs/prog_m/production/dynamic
May 30 11:06:21 automount[46872]: umounted offset mount /mounts/programs/prog_m/production/dynamic
May 30 11:06:21 automount[46872]: tree_mapent_umount_offset: umount offset /mounts/programs/prog_m/production/incoming
May 30 11:06:21 automount[46872]: umounted offset mount /mounts/programs/prog_m/production/incoming
May 30 11:06:21 automount[46872]: tree_mapent_umount_offset: umount offset /mounts/programs/prog_m/production/info

May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/dynamic
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/info
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/incoming
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/learn
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/oscope
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/psy
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/task
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/omf
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/var
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/vip
May 30 11:06:22 automount[46872]: tree_mapent_delete_offset_tree: deleting offset key /mounts/programs/prog_m/production/u01
May 30 11:06:22 automount[46872]: expired /mounts/programs/prog_m/production

May 30 11:06:22 automount[46872]: expire_proc_indirect: expire /mounts/programs/prog_m/production
May 30 11:06:22 automount[46872]: expire_proc_indirect: 1 remaining in /mounts/programs/prog_m
May 30 11:06:22 automount[46872]: expire_cleanup: got thid 140227066693376 path /mounts/programs/prog_m stat 2
May 30 11:06:22 automount[46872]: expire_cleanup: sigchld: exp 140227066693376 finished, switching from 2 to 1
May 30 11:06:22 automount[46872]: st_ready: st_ready(): state = 2 path /mounts/programs/prog_m

Later I see a “handle_packet_missing_indirect: token 13149, name prog_m” error as well

On trying to access the shares within /mounts/programs/prog_m/production, I get a wedged ls on the 1-2 shares that remain (in the break note above: “info omf” both break). I can ls on the directories that should be in there, and I get a “No such file or directory”

Restarting autofs brings everything back again, but fails soon after. This almost feels like a nested mount issue, but why has this worked historically? Anyone else see this / able to point me in a direction?

Many thanks!