[M] Change in ...nfs-ganesha[next]: NFS Ganesha Crash - pthread_mutex_lock on NULL in svc_rqst_expire_ins...
Rajesh Prasad has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1244768?usp=email ) Change subject: NFS Ganesha Crash - pthread_mutex_lock on NULL in svc_rqst_expire_insert() ...................................................................... NFS Ganesha Crash - pthread_mutex_lock on NULL in svc_rqst_expire_insert() PROBLEM | FIX 1 Inline grant from LOCKU worker | `state_block_schedule()` in `grant_blocked_locks()` 2 `CLNT_CALL_BACK` without `ev_p` | v4.0: `CLNT_CALL_WAIT`; libntirpc: guard `ev_p` 3 `CLNT_CALL_WAIT` / destroy on v4.1 shared xprt | v4.1: keep `CLNT_CALL_BACK`; don't destroy shared client on failure 4 Retry storm when channel down | Skip v4.0 grant when `cb_chan_down`; downgrade noisy CRIT logs Broken Flow : ``` LOCKU worker thread grant_blocked_locks() try_to_grant_lock() ← synchronous nfsv4_granted_callback() nfs_rpc_call() CLNT_CALL_BACK() ← always svc_rqst_expire_insert() mutex_lock(NULL) ← CRASH on State_Async/v4.0 ``` Fixed Flow : ``` LOCKU worker thread grant_blocked_locks() state_block_schedule() ← async handoff ... State_Async thread try_to_grant_lock() [skip if v4.0 && cb_chan_down] nfsv4_granted_callback() nfs_rpc_cb_single() ├─ v4.0 → nfs_rpc_v40_single() │ nfs_rpc_call() │ CLNT_CALL_WAIT() │ nfs_rpc_call_finish_success() │ └─ v4.1 → nfs_rpc_v41_single() nfs_rpc_call() CLNT_CALL_BACK() nfs_rpc_call_process() [async on reply] [on failure: clear session_bc_up, retry other session] ``` Change-Id: Ia68cd82dfd572e061d48e34ef9eee8fba41c01ca Signed-off-by: Rajesh Prasad <raprasad@redhat.com> --- M src/MainNFSD/nfs_rpc_callback.c M src/SAL/state_lock.c 2 files changed, 100 insertions(+), 9 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/68/1244768/1 -- To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1244768?usp=email To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Change-Id: Ia68cd82dfd572e061d48e34ef9eee8fba41c01ca Gerrit-Change-Number: 1244768 Gerrit-PatchSet: 1 Gerrit-Owner: Rajesh Prasad <raprasad@redhat.com>
participants (1)
-
Rajesh Prasad (GerritHub)