During the checkout of an item, all the variables of a catalog item are inserted in the SC_ITEM_OPTION table and then create a corresponding RITM record. Intermittently we observe that some of the RITMs are inserted without inserting all the necessary variables to SC_ITEM_OPTION table. This is due to a race condition when two requests try to query the variables of an Item resulting in in-correct set of variables being returned as variables of the Item.
Steps to Reproduce
This issue is not reproducible on demand. But based on the final outcome, the steps to reproduce are:
- Order a Catalog Item.
- Check whether variables are created.
Note that sometimes the RITM is created without the variables.
The workaround involves disabling caching mechanism for catalog items only. Every time details of a catalog item is needed, we will query Database. This could potentially reduce performance and increase load times for pages that requires Catalog Item information. It does not affect any artifact outside Service Catalog.
Please follow the following steps to have a workaround in place.
- Add a new boolean property glide.sc.disable.ZZ_CATALOG_ITEM_YY with value true.
- Clear the system cache by navigating to cache.do page.
Note: There is a fix set in a future patch release that addresses this issue without the potential reduction in performance outlined in this workaround
Related Problem: PRB652351