IBM Support

IT25277: MQXR: Unexpected DISCONNECT packet from MQTT client causes FDC XR070013 PROTOCOL_HEADER error

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • MQXR Service received an unexpected DISCONNECT packet from an
    MQTT client which caused the following FDC:
    
    
    | Source Class      :- com.ibm.mq.MQXRService.MQTTServerSession
                                       |
    | Source Method     :- makeStateChange
                                                                |
    | Probe Id          :- XR070013
    
    java.lang.Exception: State error state:=PROTOCOL_ERROR
    previousState:DISCONNECTED
    	at
    com.ibm.mq.MQXRService.MQTTServerSession.makeStateChange(MQTTSer
    verSession.java:1571)
    	at
    com.ibm.mq.MQXRService.MQTTServerSessionV311.receivePubComp(MQTT
    ServerSessionV311.java:1110)
    	at
    com.ibm.mq.MQXRService.MQTTServerSessionV311.handleReceive(MQTTS
    erverSessionV311.java:145)
    	at
    com.ibm.mq.MQXRService.MQTTServerContext.handleReceive(MQTTServe
    rContext.java:153)
    	at
    com.ibm.mq.MQXRService.MQTTWireContext.receive(MQTTWireContext.j
    ava:403)
    	at
    com.ibm.mq.communications.NonBlockingSslConnection.receive(NonBl
    ockingSslConnection.java:491)
    	at
    com.ibm.mq.communications.NonBlockingWorker.run(NonBlockingWorke
    r.java:398)
    	at java.lang.Thread.run(Thread.java:785)
    
    :---------------------------------------------------------------
    -----------------------------------:
    : Object            :- java.lang.Exception: State error
    state:=PROTOCOL_ERROR previousState:DISCON :
    :                   :- NECTED
    
        :
    
    state=PROTOCOL_ERROR(com.ibm.mq.MQXRService.MQTTServerSession$Co
    ntextState)
    
        Class: class
    com.ibm.mq.MQXRService.MQTTServerSession$ContextState
    previousState=DISCONNECTED(com.ibm.mq.MQXRService.MQTTServerSess
    ion$ContextState)
    history([Lcom.ibm.mq.MQXRService.MQTTServerSession$HistoryEvent;
    )
      0 Wed Apr 05 22:26:07 BST 2017 SEND_MQTT
    mqttMessageType:PUBREL
      1 Wed Apr 05 22:26:07 BST 2017 RECEIVED_MQTT
    mqttMessageType:DISCONNECT
      2 Wed Apr 05 22:26:07 BST 2017 RECEIVED_MQTT
    mqttMessageType:PUBCOMP
      3 Wed Apr 05 22:26:06 BST 2017 SEND_MQTT
    mqttMessageType:SUBACK
      4 Wed Apr 05 22:26:06 BST 2017 RECEIVED_MQTT
    mqttMessageType:PUBLISH
      5 Wed Apr 05 22:26:07 BST 2017 SEND_MQTT
    mqttMessageType:PUBREC
      6 Wed Apr 05 22:26:07 BST 2017 SEND_MQTT
    mqttMessageType:PUBLISH
      7 Wed Apr 05 22:26:07 BST 2017 RECEIVED_MQTT
    mqttMessageType:PUBREL
      8 Wed Apr 05 22:26:07 BST 2017 SEND_MQTT
    mqttMessageType:PUBCOMP
      9 Wed Apr 05 22:26:07 BST 2017 RECEIVED_MQTT
    mqttMessageType:PUBREC
    
      historyIndex=3(int)
    
    SPSS: XRASECB
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users connecting to a queue manager's MQXR
    service with Paho MQTT clients, which disconnect while receiving
    QoS 2 messages from the MQXR server as a result of a previously
    made subscriptions.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The queue manager's MQXR service threw an FDC with probe ID
    XR070013, reporting a PROTOCOL_ERROR. The packet history in the
    FDC showed that a connected MQTT client sent a DISCONNECT packet
    followed by a PUBCOMP packet - for instance:
    
     RECEIVED_MQTT mqttMessageType:DISCONNECT
     RECEIVED_MQTT mqttMessageType:PUBCOMP
    

Problem conclusion

  • When a MQTT client sends a DISCONNECT packet followed by a
    PUBCOMP packet (or other similar invalid combination of MQTT
    packets), an FDC is no longer thrown - instead a message is
    written to the mqxr.log file indicating that a protocol error
    has occurred as a result of MQTT packets being sent in the wrong
    order, giving some details to help identify the client which
    sent the invalid MQTT packets.
    
    For instance for a client which connected using a client
    identifier "client123" from a local IPv6 connection a message
    would be logged like:
    
    AMQXR2087I: Client with identifier 'client123' at network
    address '0:0:0:0:0:0:0:1' sent an unexpected MQTT packet causing
    a protocol error: state: 'PROTOCOL_ERROR' previousState:
    'DISCONNECTED'
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.11
    v9.0 LTS   9.0.0.6
    v9.1 CD    9.1.2
    v9.1 LTS   9.1.0.2
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT25277

  • Reported component name

    IBM MQ BASE M/P

  • Reported component ID

    5724H7261

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-06-06

  • Closed date

    2018-11-15

  • Last modified date

    2018-12-06

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    IBM MQ BASE M/P

  • Fixed component ID

    5724H7261

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
06 December 2018