]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: ignore logrotate state rename error
authorPatrick Donnelly <pdonnell@redhat.com>
Sun, 20 Sep 2020 21:05:13 +0000 (14:05 -0700)
committerNathan Cutler <ncutler@suse.com>
Thu, 3 Dec 2020 17:45:40 +0000 (18:45 +0100)
This is hopefully a transient issue that can be ignored.

Fixes: https://tracker.ceph.com/issues/42433
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit f30a84b6a7a21670d8b5c5a7fe19df70e4371260)

qa/tasks/ceph.py

index 167cc1480058e9c93f32a58fec0700917795dfc3..60afccc215e4a1b0bed2f5909901dc01409b0a04 100644 (file)
@@ -155,13 +155,12 @@ def ceph_log(ctx, config):
             while not self.stop_event.is_set():
                 self.stop_event.wait(timeout=30)
                 try:
-                    run.wait(
-                        ctx.cluster.run(
-                            args=['sudo', 'logrotate', '/etc/logrotate.d/ceph-test.conf'
-                                  ],
-                            wait=False,
-                        )
+                    p = ctx.cluster.run(
+                        args=['sudo', 'logrotate', '/etc/logrotate.d/ceph-test.conf'],
+                        wait=False,
+                        stderr=StringIO()
                     )
+                    run.wait(p)
                 except exceptions.ConnectionLostError as e:
                     # Some tests may power off nodes during test, in which
                     # case we will see connection errors that we should ignore.
@@ -175,6 +174,12 @@ def ceph_log(ctx, config):
                     log.debug("Missed logrotate, EOFError")
                 except SSHException:
                     log.debug("Missed logrotate, SSHException")
+                except run.CommandFailedError as e:
+                    err = p.stderr.getvalue()
+                    if 'error: error renaming temp state file' in err:
+                        log.info('ignoring transient state error: %s', e)
+                    else:
+                        raise
                 except socket.error as e:
                     if e.errno in (errno.EHOSTUNREACH, errno.ECONNRESET):
                         log.debug("Missed logrotate, host unreachable")