Wednesday, November 23, 2016

Red Alert - IMS V12, V13 or V14 - potential for IMS to write incorrect log data

Yesterday, IBM issued a Red Alert on IMS. Here's the info. I'm just taking over the text from the Red Alert.


IMS V12, V13 or V14 - potential for IMS to write incorrect log data and/or over-write 64-bit (key 7) common storage which might belong to another address space.

Users Affected:

Users of IMS that are on V12 or later,
  • who are using log buffers in above-the-bar storage (BUFSTOR=64), or
  • have callers who supply an above-the-bar log record to the IMS Logger, such as:
  •       IMS 64-bit Fast Path buffer manager
          Installation-written or vendor-written software


The IMOVE macro (used by the IMS Logger) uses 32-bit instructions to advance the addresses of the source and target destinations. If the address being advanced is a 64-bit address which crosses a 4GB boundary, then the updated address is incorrect since only the low-half of the address is updated.

The two areas of IMS that are exposed to this are the IMS Logger and the 64-bit Fast Path buffer manager.

The IMS Logger is exposed to the problem if the storage allocated for the log buffers crosses a 4GB boundary. If this is the case, a log record will contain inaccurate data and an attempt will be made to inadvertently write to another location in memory. If this location is key 7, the data will be overwritten; if it is not, IMS will ABEND0C4.

The 64-bit Fast Path buffer manager is exposed to the problem if its BPND5 area crosses a 4GB boundary. To encounter the problem, not only would the area have to cross a 4GB boundary, but log record data must exist in the location where the boundary is crossed.

Recommended Actions:

(1) Determine exposure from IMS Logger or 64-bit Fast Path buffer manager
The IMS Support Center is shipping a diagnostic utility as a ++USERMOD which will determine the exposure of a given IMS system. This can help a customer gauge the urgency for which they should take action, if any. The utility runs as a stand-alone batch job and determines:
  1. If the log buffers are above the bar, and if the storage allocated for the log buffers crosses a 4GB boundary.
  2. If the 64-bit Fast Path buffer manager is enabled, and if the storage area which might contain a log record crosses a 4GB boundary
To download the utility, obtain it from:
Directory: fromibm/im
File name: IM97624A.trs

The file contains ++USERMODs for IMS versions 12, 13, and 14. Instructions for running the utility are in a ++HOLD card along with its return codes.

If a customer cannot (or does not wish to) run the utility, instructions for determining the exposure via a series of /DIAGNOSE commands are in the ++HOLD card.

(2) Determine exposure from other programs which invoke the ILOG macro:
Installation-written or vendor-written programs can detect if they pass log records which reside above the bar by searching for the flag PRMLL64 which is set by the invoker of ILOG in the ILOG parameter list.

(3) Apply PTF if exposure is identified
If an exposure is identified, the exposed IMS should be:
  1. Brought down cleanly (for example, with the /CHE FREEZE or /CHE DUMPQ commands)

  2. Cold start IMS with the PTF applied for the appropriate version. The PTFs can be downloaded from ShopZ and are:
  3. V12: UI42725 (APRA PI71688)
    V13: UI42726 (APAR PI71701)
    V14: UI42685 (APAR PI71702)
    A cold start is necessary to prevent the reading of potentially inaccurate log data.

  4. After all previously exposed IMS systems in a data sharing group are successfully started with the PTF applied, if there is the possibility of needing to run a database recovery before regularly scheduled image copies will be taken, it is recommended that image copies be taken of all appropriate databases. This eliminates the possibility of reading potentially corrupt log data during a recovery.

If you haven't signed up to the Red Alerts by now, you really should do it. Just go over here.

No comments: