Hi,
I found many error info in the ganesha.log when stop nfs-ganesha.service, as follows.
ganesha.log:
:ganesha.nfsd-1550083[Admin] mdcache_lru_clean INODE:F_DBG:Trusting op_ctx export id 2
:ganesha.nfsd-1550083[Admin] posix2fsal_error:FSAL:CRIT:Default case mapping Transport endpoint is not connected (107) to ERR_FSAL_SERVERFAULT
:ganesha.nfsd-1550083[Admin]
mdcache_Iru_clean:INODE LRU:CRIT:Error closing file in cleanup:Undefined server error
My version info: Ganesha-3.3+FSAL_CEPH(ceph version 14.2.10);

I went through the relevant code and still didn't understand the intention of the code.

static void release_export(struct gsh_export *export)
{
export->fsal_export->exp_ops.prepare_unexport(export->fsal_export);
//mdcache_prepare_unexport

/* Release state belonging to this export */
state_release_export(export);
/* Flush FSAL-specific state */

export->fsal_export->exp_ops.unexport(export->fsal_export,obj);
//mdcache_unexport
}

The first thing to declare is that
USE_FSAL_CEPH_ABORT_CONN has been opened, so calling ceph_abort_conn() in ceph_prepare_unexport will abort the connection and umount.
However, the following operation will still need export->cmount and the connect, such as fsal_close() in
mdcache_Iru _clean().
I think that is the reason for the error printing. To sum up, I have two questions:
1、Isn't it reasonable to disconnect in
prepare_unexport before mdcache_lru_clean?
2、What is the intention of doing so? What will happen if I turn off USE_FSAL_CEPH_ABORT_CONN?

liuwei_coder
邮箱:liuwei_coder@163.com

签名由 网易邮箱大师 定制