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 <nmordec@redhat.com>
(cherry picked from commit
583b903ff758d1437c411fa7a2e2aff770844d4d)
eq(u"pool '\u9ec5' created", out)
+@attr('watch')
class TestWatchNotify(object):
OID = "test_watch_notify"
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