Xueqian Hu has uploaded this change for review.

View Change

Sync lru_run with release_export

Hit ganesha crash when removing a export & lru_run to clean caches:
Thread 17 (Thread 0x7fed38bbe700 (LWP 62657)):
...
Thread 1 (Thread 0x7fed437d8700 (LWP 62634)):

This could happen when the mdcache caches number is above the high water limit which will trigger the
lru_run to clean caches, and at the same time the release export(from dbus) is also in progress.

Steps to repro the crash:
1. add sleep in unexport code path like 10 seconds(I added delay at the beginning of state_release_export)
2. use short lru interval: LRU_Run_Interval = 5
3. set lru_state.entries_hiwat to low value like 0
4. from client side, use vi to read a file -> keep delegation -> hold the cache to prevent clean immediately
5. dbus call to remove the export

Change-Id: I378138f94bd804c312d68d0fab631d077cf52da5
Signed-off-by: Xueqian Hu <xh140312@outlook.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c
1 file changed, 3 insertions(+), 0 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/22/1202422/1

To view, visit change 1202422. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I378138f94bd804c312d68d0fab631d077cf52da5
Gerrit-Change-Number: 1202422
Gerrit-PatchSet: 1
Gerrit-Owner: Xueqian Hu <xh140312@outlook.com>