A fix is available
APAR status
Closed as program error.
Error description
The dumps show a UOW that has a chain of iterators for its RMLKs, and these chains have ended up pointing into another UOW's (empty) iterator chain. An empty chain has its prev and next pointers both the same and pointing at the same dummy point within the RMUW. DFHRMLSO then loops when going forward to the next entry. There appears to be what looks like stale data in the iterator pointers for two of the RMUWs in the system. We can see that HOP_StartIterator is called without first getting a lock which could lead to the issue that is being seen. This loop in DFHRMLSO also leads to a number of tasks entering LMQUEUE waits while waiting on the RMDMLOCK to be freed. The owner of this task will not relinquish control of the lock because it is currently looping in DFHRMLSO Additional Keywords: RMDMLOCK, DFHRMLSO, LOOP, 17CE , 17E2 rmls_remove_link KIXREVNDB
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users. * **************************************************************** * PROBLEM DESCRIPTION: A task hangs. SYSTRACE shows a loop in * * DFHRMLSO. * **************************************************************** * RECOMMENDATION: * **************************************************************** One task is running through SYNCPOINT on an open TCB. Another task is inquiring on UOWLINKs (which is not threadsafe so runs on the QR TCB). So the second task (unit of work) is browsing the RM links (RMLKs) for the first unit of work. Both these tasks use HOP_StartIterator and HOP_EndIterator macros to manipulate chains of iterators for the two units of work. These macros are not threadsafe, and since they are running on different TCBs they are able to interfere with one another. This leads to stale data in the iterator pointers for one of the units of work. In the reported problem, this led to a unit of work with chains of iterators for its RMLKs, pointing into another UOWs (empty) iterator chain. An empty chain has its previous and next pointers both the same and pointing at the same dummy location within the RMUW. Hence the code then loops going forwards on the next ptr.
Problem conclusion
Recovery Manager has been amended to get the RM domain lock prior to manipulating the iterator chains. This ensures a threadsafe syncpoint cannot interfere with an INQUIRE UOWLINK CICS SPI command.
Temporary fix
********* * HIPER * ********* FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PM75181
Reported component name
CICS TS Z/OS V4
Reported component ID
5655S9700
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt
Submitted date
2012-10-17
Closed date
2012-10-26
Last modified date
2012-12-04
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK83074
Modules/Macros
DFHRMCD DFHRMCD1 DFHRMCD2 DFHRMCI2 DFHRMCI3 DFHRMCI4 DFHRMDM DFHRMDU0 DFHRMDU2 DFHRMDU3 DFHRMDU4 DFHRMDU5 DFHRMLKQ DFHRMLK1 DFHRMLK2 DFHRMLK3 DFHRMLK4 DFHRMLK5 DFHRMLN DFHRMLSD DFHRMLSF DFHRMLSO DFHRMLSP DFHRMLSS DFHRMLSU DFHRML1D DFHRMNM DFHRMNM1 DFHRMNS1 DFHRMNS2 DFHRMOT DFHRMRO DFHRMROO DFHRMROS DFHRMROU DFHRMROV DFHRMRO1 DFHRMRO2 DFHRMRO3 DFHRMRO4 DFHRMRS DFHRMR1D DFHRMR1E DFHRMR1K DFHRMR1S DFHRMST DFHRMST1 DFHRMTRI DFHRMUC DFHRMUO DFHRMUW DFHRMUWB DFHRMUWE DFHRMUWF DFHRMUWH DFHRMUWJ DFHRMUWL DFHRMUWN DFHRMUWP DFHRMUWQ DFHRMUWS DFHRMUWU DFHRMUWV DFHRMUWW DFHRMUW0 DFHRMUW1 DFHRMUW2 DFHRMUW3 DFHRMU1C DFHRMU1D DFHRMU1E DFHRMU1F DFHRMU1G DFHRMU1J DFHRMU1K DFHRMU1L DFHRMU1N DFHRMU1Q DFHRMU1R DFHRMU1S DFHRMU1U DFHRMU1V DFHRMU1W DFHR2TRI
Fix information
Fixed component name
CICS TS Z/OS V4
Fixed component ID
5655S9700
Applicable component levels
R700 PSY UK83074
UP12/11/03 P F211
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"4.2","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"4.2","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
04 December 2012