You are right. After I set
The endless loop does not occur any more.
I have the following observation with the 3 devices in omemo messaging
a. omemo messsage send from leapord is received by both the sworfish client sessions
b. However omemo message send from either 1b or 1c received only by 1a. i.e. either of the swordfish siblings does not received each other message. But the encrypted omemo message contains all rids.
Is the above behavior normal?
I also observe some weird behavior during the test (seem to happen frequent)
Note-8 gets disconnected for unknown reason in 3 parties omemo chat
01-27 14:32:28.781 W/aTalk:  org.jivesoftware.smack.AbstractXMPPConnection.callConnectionClosedOnErrorListener() Connection XMPPTCPConnection[firstname.lastname@example.org/atalk] (0) closed with error
javax.net.ssl.SSLException: Write error: ssl=0xc55e4240: I/O error during system call, Broken pipe
at com.android.org.conscrypt.NativeCrypto.SSL_write(Native Method)
After xmpp re-connection, omemoManager publishs prekeys again. Is this necessary?
Then smack throws Response timeout for both the iq:roster/ and for prekeys even though both the replied stanzas are received well within the reply timeout (< 1 second>.
The omemo prekeys timeout causes problem to the Note8 in further omemo messaging exhanges. In view of this I will put back the previous patch to ignore the omemo reply timeout.