From: phil Date: Sat, 11 Oct 2003 21:55:52 +0000 (+0000) Subject: b=2104 X-Git-Tag: v1_7_0_51~2^7~416 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=a7f7e30aea8c97733880a7ca90e2667b96550a48;p=fs%2Flustre-release.git b=2104 - make sure to clear all pointers when various structures are freed - if mdc_close can't find the mdc_open_data, then it should expect the close RPC to fail; if it doesn't, print a stern warning - Adds replay-single test 32, testing both the case where the close() is the RPC that detects the eviction (-EIO) and the case where the close() runs afterwards (-ESTALE) --- diff --git a/lustre/tests/replay-single.sh b/lustre/tests/replay-single.sh index 20dfb31..8ab3e24 100755 --- a/lustre/tests/replay-single.sh +++ b/lustre/tests/replay-single.sh @@ -596,5 +596,21 @@ test_31() { } run_test 31 "open(O_CREAT) two, unlink one, |X| unlink one, close two (test mds_cleanup_orphans)" +# tests for bug 2104; completion without crashing is success. The close is +# stale, but we always return 0 for close, so the app never sees it. +test_32() { + multiop $DIR/$tfile O_c & + pid1=$! + multiop $DIR/$tfile O_c & + pid2=$! + # give multiop a chance to open + sleep 1 + mds_evict_client + kill -USR1 $pid1 + kill -USR1 $pid2 + return 0 +} +run_test 32 "close() notices client eviction; close() after client eviction" + equals_msg test complete, cleaning up cleanup