[XS] Change in ...nfs-ganesha[next]: Crash in mdcache_lru_get while destroying st_lock.
Rajesh Prasad has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1227776?usp=email ) Change subject: Crash in mdcache_lru_get while destroying st_lock. ...................................................................... Crash in mdcache_lru_get while destroying st_lock. Crash occurred when the LRU reached its high‑water mark and attempted to evict a temporary reference entry. Although it found an LRU entry that seemed valid, Ganesha crashed while destroying the associated mdcache entry’s state handle lock. Based on the state_hdl data, it looks like the cleanup process invoked the destroy operation on a lock that had already been destroyed. Flow : mdcache_lru_get() → lru_try_reap_entry(LRU_TEMP_REF) → lru_reap_impl() → cih_remove_latched() [when entry is reclaimable] → mdcache_lru_unref() → mdcache_lru_clean() → state_hdl_cleanup() → PTHREAD_MUTEX_destroy(&st_lock) → [lru != NULL] mdcache_lru_clean(nentry) [AGAIN!] → state_hdl_cleanup() → PTHREAD_MUTEX_destroy(&st_lock) [DOUBLE-FREE!] The entry has already been cleaned by mdcache_lru_unref() in the cih_remove_latched() path, so we should NOT call mdcache_lru_clean() again to avoid double cleanup of st_lock. Change-Id: I27585641400d0d03db451f35abc85de095c65040 Signed-off-by: Rajesh Prasad <raprasad@redhat.com> --- M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/76/1227776/1 -- To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1227776?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: I27585641400d0d03db451f35abc85de095c65040 Gerrit-Change-Number: 1227776 Gerrit-PatchSet: 1 Gerrit-Owner: Rajesh Prasad <raprasad@redhat.com>
participants (1)
-
Rajesh Prasad (GerritHub)