E1: 43: XT4312Z1/B4301050 Creates Zombie Kernel
(Doc ID 2669394.1)
Last updated on JUNE 08, 2020
Applies to:JD Edwards EnterpriseOne Procurement and Subcontract Management - Version 8.12 and later
Information in this document applies to any platform.
In a system with high load on receipt routing transactions (Parallel processing, high number of users) XT4312Z1/B4301050 is causing Zombie kernel. This cannot be replicated on a standalone workstation.
Steps to reproduce:
In Ixt4312z1_ED_LoopJobNumberCache function F41291ReadWriteLandedCostJobs is called. First in mode "4" (Get Next) - this returns a pointer to the data. This pointer id is saved in F41291_hCursor. Then F41291F41291ReadWriteLandedCostJobs is called again. Now in mode "5" (Update).
In update mode, the function first removes the existing point, then creates a new one but XT4312Z1 has not code to handle a change in the pointer. The F41291_hCursor is never updated with the new pointer. Right after the call to B4301050, sub-function Ixt4312z1_ED_WriteToGL_And_Inv is called, passing F41291_hCursor.
This subfunction will again call F41291F41291ReadWriteLandedCostJobs in update mode. This then removes the pointer again (which was given to another thread in the meantime) and then fails on further processing with error 078N (Fetch from cache &1 failed).
It seems that the landed cost generates this issue. Bigger issue is that it has removed the pointer a second time after it was given to another thread. The moment the other thread is trying to read the pointer, the kernel will go zombie due to memory violation.
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document