Uploaded image for project: 'ejabberd development'
  1. ejabberd development
  2. EJAB-1665

Ejabberd sorts stanzas by type when received within the same Bosh envelope

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Cancelled
    • Affects Version/s: ejabberd 2.1.10
    • Fix Version/s: None
    • Component/s: XEP Support
    • Environment:
      Detected on Debian, using Strophe and an xternal component

      Description

      When sending a request like this on Bosh:

      <body rid='someRID' xmlns='http://jabber.org/protocol/httpbind' sid='someSID'>
      <message to='someUser@someDomain' type='chat' xmlns='jabber:client'>
      <body>123</body>
      </message>
      <presence type='unavailable' xmlns='jabber:client' />
      </body>

      ... the presence is always executed first, then the message follows.

      This behaviour is not compliant with the RFC 6120, which says in section 10.1:

      "An XMPP server MUST ensure in-order processing of the stanzas and
      other XML elements it receives over a given input stream from a
      connected client or remote server."

        Activity

        Hide
        badlop Badlop added a comment -

        I don't get that problem. Using ejabberd 2.1.10:

        User1 sends:

        <body xmlns='http://jabber.org/protocol/httpbind'
              sid='89525c24de9a8c32317289bf17fc80b26d3bf88a'
              rid='8549171'>
          <message to='user2@localhost'><body>123</body></message>
          <presence type='away' xmlns='jabber:client' />
        </body>
        

        User2 receives:

        <body xmlns='http://jabber.org/protocol/httpbind'>
          <message xmlns='jabber:client'
                   from='user1@localhost/tka1cd'
                   to='user2@localhost'>
            <body>123</body>
          </message>
        </body>
        <body xmlns='http://jabber.org/protocol/httpbind'>
          <presence xmlns='jabber:client'
                    from='user1@localhost/tka1cd'
                    to='user2@localhost/tka1'
                    type='away' />
        </body>
        
        Show
        badlop Badlop added a comment - I don't get that problem. Using ejabberd 2.1.10: User1 sends: <body xmlns='http: //jabber.org/protocol/httpbind' sid='89525c24de9a8c32317289bf17fc80b26d3bf88a' rid='8549171'> <message to='user2@localhost'><body>123</body></message> <presence type='away' xmlns='jabber:client' /> </body> User2 receives: <body xmlns='http: //jabber.org/protocol/httpbind'> <message xmlns='jabber:client' from='user1@localhost/tka1cd' to='user2@localhost'> <body>123</body> </message> </body> <body xmlns='http: //jabber.org/protocol/httpbind'> <presence xmlns='jabber:client' from='user1@localhost/tka1cd' to='user2@localhost/tka1' type='away' /> </body>
        Hide
        vcarel Vianney Carel added a comment -

        Interresting. I didn't mention that I was connected to Ejabberd as an external component. Could this be related ?

        Anyway I confirm the bug is still there, and happens all the time in my situation.

        Show
        vcarel Vianney Carel added a comment - Interresting. I didn't mention that I was connected to Ejabberd as an external component. Could this be related ? Anyway I confirm the bug is still there, and happens all the time in my situation.
        Hide
        cromain@process-one.net Christophe Romain (Inactive) added a comment -

        The EJAB project is obsolete for more than a year now, all ejabberd issues are tracked in github:
        https://github.com/processone/ejabberd/issues

        This ticket is now automatically closed as it could not be handled completely. It likely target a too old ejabberd version or is obsolete.
        If you think it needs to be resurrected, please create a github issue referencing this EJAB ticket.
        We'll keep this ticket readable for reference in case it's needed in a future patch.

        Show
        cromain@process-one.net Christophe Romain (Inactive) added a comment - The EJAB project is obsolete for more than a year now, all ejabberd issues are tracked in github: https://github.com/processone/ejabberd/issues This ticket is now automatically closed as it could not be handled completely. It likely target a too old ejabberd version or is obsolete. If you think it needs to be resurrected, please create a github issue referencing this EJAB ticket. We'll keep this ticket readable for reference in case it's needed in a future patch.

          People

          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development