IBM Support

IT37135: Memory exceptions when JSON API calls such as json_object_iter_next are called from user code

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

  • MQ client applications, or user code in exits (example: security
    exits) experience exceptions related to json functions when
    using libraries to work with json data such as libjansson.
    
    An FDC record with Probe ID XC130003 may be written.  This is an
    example of text within such an FDC record.
    
    --------------------------------
    Probe Id          :- XC130003
    Component         :- xehExceptionHandler
    Arith1            :- 11 (0xb)
    Comment1          :- SIGSEGV: address not mapped(0x2b2900000018)
    ------------------------------
    
    O/S Call Stack for current thread, may contain
    
    /opt/mqm/lib64/libmqmcs_r.so(xehExceptionHandler+0x6c1)
    /lib64/libpthread.so.0(+0xf630)
    /opt/mqm/lib64/libmqmcs_r.so(json_object_iter_next+0x3)
    /usr/lib64/libjansson.so.4(+0x2aa5)
    /usr/lib64/libjansson.so.4(json_dumps+0x46)
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users who wish to use JSON libraries like libjansson, in the
    same application program as MQ application API libraries.
    
    
    Platforms affected:
    Linux on Power, Linux on x86-64, Linux on zSeries
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The MQ internal shared library libmqmcs_r.so (and variants)
    exported a larger set of symbols as entry points than was needed
    for the functionality of the library.
    
    Because some json_* symbols were exported as entry points from
    libmqmcs_r.so, they could be found by the runtime linker when
    fixing up symbol links, from other function calls elsewhere in
    the application.
    
    When this happened, the library code in libmqmcs_r.so was
    unlikely always to match the expectations of the caller.  This
    resulted in memory exceptions (SIGSEGV etc.).
    

Problem conclusion

  • The exported entry points from libmqmcs_r.so (and variants) are
    now derived from a list of symbols that omits the json_*
    functions.  This ensures that the runtime linker does not fix up
    linkage between application code outside MQ and the json_*
    functions inside libmqmcs_r.so.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 LTS   9.1.0.9
    v9.x CD    9.2.4
    
    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

    IT37135

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7271

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-06-04

  • Closed date

    2021-07-30

  • Last modified date

    2021-07-30

  • 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 MP

  • Fixed component ID

    5724H7271

Applicable component levels

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

Document Information

Modified date:
31 July 2021