IBM Support

IC92207: MODULE AMQMTMGC MAKES A CALL COGETOBJECTCONTEXT WITHOUT HAVING MADE A PREVIOUS COINITIALIZEEX CALL.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The amqmtmgc module makes a call to the Microsoft Windows COM
    method CoGetObjectContext() without first making a call to
    CoInitializeEx(). Whilst this is not usually a problem, if
    another thread successfully initializes the COM before the
    amqmtmgc calls CoGetObjectContext(), a timing window in the
    COM code can result in a memory access violation.
    
    The call stack at crash time is:
    
    ole32!OXIDEntry::InitRundown
    ole32!CComApartment::InitRemoting
    ole32!CComApartment::StartServer
    ole32!InitChannelIfNecessary
    ole32!CoGetObjectContext
    amqmtmgc!<Unknown Function>
    QFA_2_1_2!QFA::MqChannel::getImqChannel
    QFA_2_1_2!QFA::MqQueueManager::open
    QFA_2_1_2!Qfa2UfoMqDevice::initialize
    QFA_2_1_2!Qfa2UfoMqDevice::onStart
    QFA_2_1_2!Qfa2UfoMqDevice::startThread
    MSVCR100D!_callthreadstartex
    MSVCR100D!_threadstartex
    kernel32!BaseThreadInitThunk
    ntdll!__RtlUserThreadStart
    ntdll!_RtlUserThreadStart
    

Local fix

  • A possible workaround could be to call CoInitializeEx on their
    thread before calling MQCONNX. This should prevent the access
    violation.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    All users of WebSphere MQ 7.0, 7.1, and 7.5.
    
    Platforms affected:
    Windows
    
    ****************************************************************
    PROBLEM SUMMARY:
    The access violation reported occurred because the MQ code made
    a call to CoGetObjectContext() without first making a call to
    the COM library CoIntializeEx() method, which the Microsoft COM
    documentation states is a requirement. Without calling
    CoInitalizeEx() a race condition can occur with another thread
    which may result in an access violation ending the process.
    

Problem conclusion

  • The code has been altered to ensure that CoInitializeEx() is
    always called before an attempt is made to call
    CoGetObjectContext(), thereby avoiding the race condition which
    can cause an access violation.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following:
    
                       v7.0
    Platform           Fix Pack 7.0.1.11
    --------           --------------------
    Windows            7.0.1.11
    
                       v7.1
    Platform           Fix Pack 7.1.0.4
    --------           --------------------
    Windows            7.1.0.4
    
    Version            v7.5
    --------           --------------------
    Fix available in:  7.5.0.3
    
    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

    IC92207

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    701

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-05-10

  • Closed date

    2013-06-11

  • Last modified date

    2013-06-11

  • 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

    WMQ WINDOWS V7

  • Fixed component ID

    5724H7220

Applicable component levels

  • R701 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCPQ63","label":"APAR \/ Maintenance"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
11 June 2013