Infinite loop when MUC MAM doesn't contain `complete` attribute on <fin/> element (#235)
wojciech.kapcia@tigase.net opened 4 years ago

OpenFire lacks it on their MUC: openfire@conference.igniterealtime.org and Siskin is getting stuck querying MAM constantly:

<!--   2020-08-14T17:15:42Z   <<<<   -->
<iq to='wojtek@tigase.org/1505915227-tigase-19' from='openfire@conference.igniterealtime.org' id='1B867B69-40BE-4EDA-A68A-D6CFA7E0F99E' type='result' xmlns='jabber:client'>
<fin queryid='B60B9A76-9E13-4C43-8D0D-B30E15C807E3' xmlns='urn:xmpp:mam:2'>
<set xmlns='http://jabber.org/protocol/rsm'>
<count>0</count>
</set>
</fin>
</iq>

<!--   2020-08-14T17:15:42Z   >>>>   -->
<iq to='openfire@conference.igniterealtime.org' type='set' id='B1730F4B-95E3-4E9F-828E-9466EAD476E3'>
<query xmlns='urn:xmpp:mam:2' queryid='3A789767-E601-4F48-B5CD-0C5CF62C6D02'>
<x type='submit' xmlns='jabber:x:data'>
<field var='FORM_TYPE' type='hidden'>
<value>urn:xmpp:mam:2</value>
</field>
<field var='start' type='text-single'>
<value>2020-07-30T20:51:10Z</value>
</field>
<field var='end' type='text-single'>
<value>2020-08-04T16:07:34Z</value>
</field>
</x>
<set xmlns='http://jabber.org/protocol/rsm'>
<max>150</max>
</set>
</query>
</iq>

https://xmpp.org/extensions/xep-0313.html#query-paging-request

When the results returned by the server are complete (that is: when they have not been limited by the maximum size of the result page (either as specified or enforced by the server)), the server MUST include a 'complete' attribute on the element, with a value of 'true'; this informs the client that it doesn't need to perform further paging to retreive the requested data. If it is not the last page of the result set, the server MUST either omit the 'complete' attribute, or give it a value of 'false'.

Ref: https://issues.igniterealtime.org/browse/OF-2063

Andrzej Wójcik (Tigase) commented 4 years ago

Fixed with workaround added to TigaseSwift.

Please wait...
Page is in error, reload to recover