# HG changeset patch # User Goffi # Date 1563648917 -7200 # Node ID c9f03b1eb64dab4f5bf8533c80327703adc5585a # Parent 758bee45612bacd705633d1a7cca6f12ac9bedba plugin XEP-0198: catch and log an error if buffer is unexpectedly empty diff -r 758bee45612b -r c9f03b1eb64d sat/plugins/plugin_xep_0198.py --- a/sat/plugins/plugin_xep_0198.py Sat Jul 20 20:53:52 2019 +0200 +++ b/sat/plugins/plugin_xep_0198.py Sat Jul 20 20:55:17 2019 +0200 @@ -245,8 +245,17 @@ """Update buffer and buffer_index""" if server_acked > session.buffer_idx: diff = server_acked - session.buffer_idx - for i in xrange(diff): - session.buffer.pop() + try: + for i in xrange(diff): + session.buffer.pop() + except IndexError: + log.error( + u"error while cleaning buffer, invalid index (buffer is empty):\n" + u"diff = {diff}\n" + u"server_acked = {server_acked}\n" + u"buffer_idx = {buffer_id}".format( + diff=diff, server_acked=server_acked, + buffer_id=session.buffer_idx)) session.buffer_idx += diff def replayBuffer(self, client, buffer_, discard_results=False):