Dealordlib Core Dump on Very Large Orders
Last updated on OCTOBER 26, 2016
Applies to:Oracle Retail Merchandising System - Version 13.0.7 and later
Information in this document applies to any platform.
Running Oracle Retail Merchandising System (RMS) 13.0.7.
When applying discounts to very large purchase orders (over 10,000 item/locs), dealordlib is failing both when called via external procedure and via orddscnt.
In some environments, the process routinely core dumps when called via extproc from an Exadata DB (linux OS), as well as when called via orddscnt on a batch server (AIX OS).
In other environments, a similar error, but not a core dump, has caused a fatal runtime error shown below:
Both problems appear to be related to memory management/reallocation of memory.
Internal testing has demonstrated that by changing the initial array sizes in dealordlib.h, from 10,000 to 300,000, the core dump does not occur when called via external procedure (linux), but still occurs via orddscnt (AIX).
Furthermore, this issue only occurs when orders are large enough that dealordlib would need to allocate additional memory for the arrays.
Steps to Reproduce:
1. Create a purchase order with > 10,000 item/locations.
2. Apply discounts to the order using either the "Apply Process" option on ordhead, or by running orddscnt after placing the order in deal_calc_queue.
3. Observe that dealordlib core dumps.
When called via the ordhead Form, the attached error will be displayed.
When called via orddscnt batch, the program fails.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms