Whamcloud - gitweb
LU-16052 llog: handle -EBADR for catalog processing 70/48070/3
authorMikhail Pershin <mpershin@whamcloud.com>
Fri, 29 Jul 2022 08:24:15 +0000 (11:24 +0300)
committerOleg Drokin <green@whamcloud.com>
Mon, 12 Sep 2022 02:54:00 +0000 (02:54 +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

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-on: https://review.whamcloud.com/48070
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Etienne AUJAMES <eaujames@ddn.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);