Whamcloud - gitweb
LU-16052 llog: handle -EBADR for catalog processing 72/48772/5
authorMikhail Pershin <mpershin@whamcloud.com>
Mon, 17 Oct 2022 23:29:52 +0000 (16:29 -0700)
committerOleg Drokin <green@whamcloud.com>
Wed, 2 Aug 2023 06:18:02 +0000 (06:18 +0000)
Llog catalog processing might retry to get the last llog block
to check for new records if any. That might return -EBADR code
which should be considered as valid. Previously -EIO was
returned in all cases.

Run conf-sanity test_106 several times as specific test

Lustre-change: https://review.whamcloud.com/48070
Lustre-commit: e260f751f2a21fa126eeb4bc9e94250ba3e815f1

Test-Parameters: testlist=conf-sanity env=ONLY=106,SLOW=yes,ONLY_REPEAT=10
Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I30e04ba2c91c8bdce72c95675a1209639e9f0570
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Etienne AUJAMES <eaujames@ddn.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48772
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/obdclass/llog.c

index 79f89fe..b23645d 100644 (file)
@@ -576,8 +576,8 @@ repeat:
                        GOTO(out, rc = 0);
                /* we`ve tried to reread the chunk, but there is no
                 * new records */
-               if (rc == -EIO && repeated && (chunk_offset + buf_offset) ==
-                   cur_offset)
+               if (repeated && (chunk_offset + buf_offset) == cur_offset &&
+                   (rc == -EBADR || rc == -EIO))
                        GOTO(out, rc = 0);
                if (rc != 0)
                        GOTO(out, rc);