From: NitzanMordhai Date: Thu, 18 Aug 2022 11:33:15 +0000 (+0000) Subject: pybind/rados: notify callback reconnect X-Git-Tag: v17.2.6~459^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F48113%2Fhead;p=ceph.git pybind/rados: notify callback reconnect when testing with socket injection, reconnect won't call error callback for each reconnect, the callback will be called. changing the callback count of notify by the data and increass only when the data is changed, if the data is the same, we probably reconnecting due to socket injection. Fixes: https://tracker.ceph.com/issues/45721 Signed-off-by: Nitzan Mordechai (cherry picked from commit 583b903ff758d1437c411fa7a2e2aff770844d4d) --- diff --git a/src/test/pybind/test_rados.py b/src/test/pybind/test_rados.py index 508cbe5ae9e4..ff6fee3db296 100644 --- a/src/test/pybind/test_rados.py +++ b/src/test/pybind/test_rados.py @@ -1373,6 +1373,7 @@ class TestCommand(object): eq(u"pool '\u9ec5' created", out) +@attr('watch') class TestWatchNotify(object): OID = "test_watch_notify" @@ -1401,8 +1402,9 @@ class TestWatchNotify(object): def callback(notify_id, notifier_id, watch_id, data): with self.lock: if watch_id not in self.notify_cnt: - self.notify_cnt[watch_id] = 0 - self.notify_cnt[watch_id] += 1 + self.notify_cnt[watch_id] = 1 + elif self.notify_data[watch_id] != data: + self.notify_cnt[watch_id] += 1 self.notify_data[watch_id] = data return callback