Fix (APAR):  PI76509

Status:  Fix

Release:  17.0.0.1

Operating System:  AIX,HP-UX,IBM i,Linux,Solaris,Windows

Supersedes Fixes:  

CMVC Defect:  

Byte size of APAR:  1601352

Date: 2017-04-27

Abstract:  Hang                                                            on org/apache/webbeans/context/sessioncontext.addchildrequest

Description/symptom of problem:  
PI76509 resolves the following problem:

ERROR DESCRIPTION:                                              
Hanging threads after applying fix pack 8.5.5.11 or liberty     
16.0.0.4 or 17.0.0.1                                            
                                                                
SystemOut.log and Java cores show:                              
                                                                
[9-2-17 16:13:45:421 CET] 0000002f ThreadMonitor W   WSVR0605W: 
Thread "WebContainer : 35" (0000011d) has been active for 697463
milliseconds and may be hung.  There is/are 1 thread(s) in      
total in the server that may be hung.                           
at                                                              
java/util/HashMap.put(HashMap.java:506(Compiled                 
Code)) at java/util/HashSet.add(HashSet.java:229(Compiled Code))
at                                                              
org/apache/webbeans/context/SessionContext.addChildRequest(Sessi
onContext.java:118(Compiled Code))                              
at                                                              
org/apache/webbeans/web/context/WebContextsService.initRequestCo
ntext(WebContextsService.java:550(Compiled Code))               
at                                                              
org/apache/webbeans/web/context/WebContextsService.startContext(
WebContextsService.java:417(Compiled Code))                     
at                                                              
com/ibm/ws/webbeans/services/JCDIWebListener.requestInitialized(
JCDIWebListener.java:321(Compiled Code))                        
at                                                              
com/ibm/ws/webcontainer/webapp/WebApp.notifyServletRequestCreate
d(WebApp.java:1908(Compiled Code))                              
                                                                
Additional symptoms: session invalidation threads begin to      
become blocked and an error similar to the following is logged  
in javacores                                                    
                                                                
Webcontainers 38,23,20,18 and 7 were blocked behind webcontainer
21 which was runnable and Owns Monitor Lock on                  
com/ibm/ws/session/store/memory/MemorySession@0x000000000852C740
                                                                
at                                                              
java/util/HashMap$HashIterator.remove(HashMap.java:955(Compiled 
Code))                                                          
at                                                              
org/apache/webbeans/context/SessionContext.isAnyRequestActive(Se
ssionContext.java:137(Compiled Code))                           
at                                                              
org/apache/webbeans/context/SessionContext.isAnyRequestActive(Se
ssionContext.java:123(Compiled Code))                           
at                                                              
org/apache/webbeans/web/context/WebContextsService.destroySessio
nContext(WebContextsService.java:717(Compiled Code))            
at                                                              
org/apache/webbeans/web/context/WebContextsService.endContext(We
bContextsService.java:269(Compiled Code))                       
at                                                              
com/ibm/ws/webbeans/services/JCDIWebListener.sessionDestroyed(JC
DIWebListener.java:397(Compiled Code))                          
at                                                              
com/ibm/ws/session/http/HttpSessionObserver.sessionDestroyed(Htt
pSessionObserver.java:180(Compiled Code))                       
at                                                              
com/ibm/ws/session/SessionEventDispatcher.sessionDestroyed(Sessi
onEventDispatcher.java:160(Compiled Code))                      
at                                                              
com/ibm/ws/session/StoreCallback.sessionInvalidated(StoreCallbac
k.java:126(Compiled Code))                                      
at                                                              
com/ibm/ws/session/store/memory/MemorySession.invalidate(MemoryS
ession.java:232)                                                
at                                                              
com/ibm/ws/session/store/memory/MemorySession.invalidate(MemoryS
ession.java:878)                                                

LOCAL FIX:                                                      
None                                                            

PROBLEM SUMMARY

USERS AFFECTED:
 All users of IBM WebSphere Application
Server

PROBLEM DESCRIPTION:
Concurrent modification can corrupt a
HashSet leading to hanging threads

RECOMMENDATION:
None

A HashSet in the org.apache.webbeans.context.SessionContext
was undergoing concurrent modification. A hanging
thread with SessionContext on the stack is likely to be
resolved by this APAR.

PROBLEM CONCLUSION:                                             
The Set in question was updated to use a different Set          
implementation that can accept concurrent modification.         
                                                                
The fix for this APAR is currently targeted for inclusion in    
fix packs 8.5.5.12, 8.0.0.14 and Liberty 17.0.0.2.  Please      
refer to the Recommended Updates page for delivery information: 
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980   


Directions to apply fix:  
        1. Open a console and direct it to the location of your iFix jar
        2. Run the command "java -jar 17.0.0.1-wlp-archive-IFPI76509.jar". The following launch options
        are available for the jar:

        --installLocation [LibertyRootDir] by default the jar will look for a "wlp" directory
        in its current location. If your Liberty profile install
        location is different to "wlp" and/or is not in the same
        directory as the jar then you can use this option to change
        where the jar will patch. [LibertyRootDir] can either be
        relative to the location of the jar or an absolute file path.

        --suppressInfo hides all messages other than confirming the
        patch has completed or error messages.

        3. Stop your Liberty profile server(s).
        4. When you next start your Liberty profile server(s), the fix will become active in your runtime.





Directions to remove fix:  
        1. Stop your Liberty profile server(s).
        2. You will need to delete the following files (file locations are
        relative to your Liberty profile install root):

         - lib/com.ibm.ws.openwebbeans.impl.1.1.6_1.0.16.cl170120170411-1258.jar
         - lib/fixes/17001-wlp-archive-IFPI76509_17.0.0001.20170411_1719.xml
         - lib/fixes/17001-wlp-archive-IFPI76509_17.0.0001.20170411_1719.lpmf

        3. When you next start your Liberty profile server(s), the fix will become inactive in your runtime.





Directions to re-apply fix:  
        1. Follow the instructions to apply the fix.





Additional Information: