That pseudo-code looks okay. Can you attach to the hung ganesha in the debugger and look at what the thread is doing? It may be stuck on a lock or something. Daniel On 12/17/20 5:22 AM, Chakra Divi wrote:
Hi all,
I'm working to create an async model in fsal layer for my filesystem. As part of this, called "done_cb" for a read_req from my own thread in fsal layer. This causes hang and nfs4 stopped responding. Here is pseudo code for the read callback. i could see a similar implementation in FSAL_MEM (mem_handle.c) layer
void fsal_read2_cb(void *cbArg, int err) { struct test_wa *wa = (struct test_wa*)cbArg; fsal_errors_t fsal_error = posix2fsal_error(err); struct root_op_context root_op_context; init_root_op_context(&root_op_context, wa->ctx_export, wa->fsal_export, 0, 0, UNKNOWN_REQUEST); wa->done_cb(wa->obj_hdl, fsalstat(fsal_error, err), wa->read_arg, wa->caller_arg); release_root_op_context(); free(wa); return; }
Shouldn't we call done_cb from a custom thread ? Can you please let me know if i'm missing something and right way to do this - Thanks for the help
Regards, Chakra _______________________________________________ Devel mailing list -- devel@lists.nfs-ganesha.org To unsubscribe send an email to devel-leave@lists.nfs-ganesha.org