IBM Support

PH23757: EJB PERSISTENT TIMER/DESERIALIZED CONTEXT FAILS WITH CWWKC1004E (UNAVAILABLE CONTEXT) AFTER MPCONTEXTPROPAGATION-1.0 DISABLED

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The following error happens after you disable
    mpContextPropagation-1.0 and then try to use thread context
    that was previously captured when mpContextPropagation-1.0
    was
    enabled. This can happen with contextual proxies created by
    a
    ContextService or with EJB Persistent Timers.
    
    java.lang.IllegalStateException: CWWKC1004E: Thread context
    provider com.ibm.ws.concurrent.mp.cleared.context.provider
    is unavailable.
    	at
    com.ibm.ws.context.service.serializable.ThreadContextDescrip
    torImpl$1.run(ThreadContextDescriptorImpl.java:151)
    	at
    com.ibm.ws.context.service.serializable.ThreadContextDescrip
    torImpl$1.run(ThreadContextDescriptorImpl.java:138)
    	at
    java.base/java.security.AccessController.doPrivileged(Access
    Controller.java:703)
    	at
    com.ibm.ws.context.service.serializable.ThreadContextDescrip
    torImpl.<init>(ThreadContextDescriptorImpl.java:138)
    	at
    com.ibm.wsspi.threadcontext.ThreadContextDeserializer.deseri
    alize(ThreadContextDeserializer.java:34)
    	at
    com.ibm.ws.concurrent.persistent.internal.TaskInfo.deseriali
    zeThreadContext(TaskInfo.java:152)
    	at
    com.ibm.ws.concurrent.persistent.internal.InvokerTask.run(In
    vokerTask.java:413)
    
    This is fixed in
    https://github.com/OpenLiberty/open-liberty/issues/11199
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server Liberty                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: EJB persistent timer / deserialized     *
    *                      context fails with CWWKC1004E           *
    *                      (UNAVAILABLE CONTEXT) after             *
    *                      mpContextPropagation-1.0 disabled       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The following error happens after you disable
    mpContextPropagation-1.0 and then try to use thread context that
    was previously captured when mpContextPropagation-1.0 was
    enabled. This can happen with contextual proxies created by a
    ContextService or with EJB Persistent Timers.
    
    It is possible that the jaxrs-2.1 feature might have enabled and
    disabled mpContextPropagation-1.0 without you explicitly
    adding/removing it from the server.xml.  Because there was a
    window of a couple of months during which the jaxrs-2.1 feature
    automatically pulled in parts of mpContextPropagation-1.0, it is
    possible for users of jaxrs-2.1 to experience this problem if
    they created EJB persistent timers or serialized contextual
    proxies and later moved up to a new version of Liberty where the
    jaxrs-2.1 feature no longer automatically pulls in parts of
    mpContextPropagation-1.0.
    
    java.lang.IllegalStateException: CWWKC1004E: Thread context
    provider com.ibm.ws.concurrent.mp.cleared.context.provider is
    unavailable.
    	at
    com.ibm.ws.context.service.serializable.ThreadContextDescriptorI
    mpl$1.run(ThreadContextDescriptorImpl.java:151)
    	at
    com.ibm.ws.context.service.serializable.ThreadContextDescriptorI
    mpl$1.run(ThreadContextDescriptorImpl.java:138)
    	at
    java.base/java.security.AccessController.doPrivileged(AccessCont
    roller.java:703)
    	at
    com.ibm.ws.context.service.serializable.ThreadContextDescriptorI
    mpl.<init>(ThreadContextDescriptorImpl.java:138)
    	at
    com.ibm.wsspi.threadcontext.ThreadContextDeserializer.deserializ
    e(ThreadContextDeserializer.java:34)
    	at
    com.ibm.ws.concurrent.persistent.internal.TaskInfo.deserializeTh
    readContext(TaskInfo.java:152)
    	at
    com.ibm.ws.concurrent.persistent.internal.InvokerTask.run(Invoke
    rTask.java:413)
    

Problem conclusion

  • Deserialization code path is updated to skip over the clearing
    of MicroProfile Context Propagation context types if
    MicroProfile Context Propagation is not enabled.
    
    The fix for this APAR is currently targeted for inclusion in fix
    pack 20.0.0.4.  Please refer to the Recommended Updates page for
    delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

  • Re-enable mpContextPropagation-1.0
    

Comments

APAR Information

  • APAR number

    PH23757

  • Reported component name

    WAS LIBERTY COR

  • Reported component ID

    5725L2900

  • Reported release

    CD0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-03-27

  • Closed date

    2020-04-07

  • Last modified date

    2020-04-09

  • 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

    WAS LIBERTY COR

  • Fixed component ID

    5725L2900

Applicable component levels

  • RCD0 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSD28V","label":"WebSphere Application Server Liberty Core"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"CD0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
14 October 2021