I expect this is because qdel takes some time to kill the running processes, and PE hasn't waited long enough before it starts deleting the session directory. This wouldn't interfere with the deleting on a regular filesystem, though it might confuse the running processes. But on NFS you can't delete a directory while files within it are open by any process, even though you've already deleted those files! This is because NFS doesn't use inodes, so it has to manage the open file handles by creating .nfs-xxxx files in the directory, and they stop you from removing the directory. Anyway, unless there's a way to find out when qdel is really done killing things, we just need to wait long enough between the qdel and the delete operation. I've added a longer delay in PEBackgroundSGE::kill() just after the qdel.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I expect this is because qdel takes some time to kill the running processes, and PE hasn't waited long enough before it starts deleting the session directory. This wouldn't interfere with the deleting on a regular filesystem, though it might confuse the running processes. But on NFS you can't delete a directory while files within it are open by any process, even though you've already deleted those files! This is because NFS doesn't use inodes, so it has to manage the open file handles by creating .nfs-xxxx files in the directory, and they stop you from removing the directory. Anyway, unless there's a way to find out when qdel is really done killing things, we just need to wait long enough between the qdel and the delete operation. I've added a longer delay in PEBackgroundSGE::kill() just after the qdel.